Thilo Goetz wrote: > Marshall Schor wrote: > [...] > >> Here's the story. >> >> For this release, we are planning to release uima (base), uima-as, >> sandbox, and uima-cpp together as one release. >> >> The parent POMs were re-arranged so that the uimaj pom is now the parent >> of the sandboxDistr pom. >> >> Parent POMs are found via 2 mechanims. One is looking them up using the >> information in the <relative-path> element of the POM - and as you have >> seen, that requires that the sandbox be located within the main uima >> directory. (This perhaps unusual requirement comes from working with >> Eclipse, which does not support hierarchical directories for projects). >> > > That's only true if you want to extract both the core > and the sandbox from within eclipse into a single > workspace. The only reason this doesn't give you > svn troubles is because the eclipse svn client checks > out every project individually. > > I like to check out things on the command line. Then > you can import the projects into eclipse, all of them > into the same workspace, if you want. When you want > to do an update, you just need to say "svn up" on the > command line, and do a refresh in eclipse. I also > usually have the sandbox and core in two separate > workspaces so I don't have so many projects in one > workspace (yes I know what working sets are). > > However, for this approach to work you need to copy > some resources from the core to the sandbox: uimaj > and the docbook stuff. So if you update those from > svn, you must not forget to copy them again. In > linux, you could probably just create a link. On > windows, we don't have that luxury. > > >> But there is another way too - maven (if it doesn't find the POM using >> the relative-path link) looks up the POM using the "maven coordinates" >> in the various maven repositories, starting with your local .m2 >> repository. >> >> So, all you have to do is build the uimaj POM and install it to your >> local repository. (Note that after things are released, any user would >> automatically get the parent POM downloaded from the release >> repositories, assuming they had maven set up to find these repositories). >> > > Doesn't work for me. I do "mvn install" in the core, and I > still have to manually copy over the uimaj project (or maybe > just the pom, I never tried that) to build the sandbox. Is > there another incantation I need to utter for this to work? > Hmmm. Here's my guess:
1) the mvn install does "work", but 2) there are *other* dependencies that use relative paths. It would be great if someone tried this and reported exactly what the errors are... then, perhaps we could solve these. I think there are some issues with copying the LIC/NOT/DISC files - because the source is located by relative links. That might be able to be fixed. I am planning to change the source directory for these files shortly (modifying only the uimaj pom) so that if the LIC/NOT/DISC files are found in the dir of the project being built, those are used (useful for sandbox projects which have different LIC/NOT/DISC files to go in their JARs), and only if they are not found there, then the main ones for the UIMA project are used as the source. That may help this one issue (#2) if that's all that's left by way of "relative" path dependencies. -Marshall > >> There is a "trick" to building the uimaj POM - if you just say "mvn >> install" in the directory of the uimaj project, it will build, but it >> will also build all of the base UIMA. If all you want to do is just >> install the POM, without building all of UIMA, you can do that using the >> -N parameter: type "mvn -N install". The -N parameter stops maven from >> processing the submodules. >> >> HTH. -Marshall >> > > > >