> Hi,
>
> On Fri, Oct 22, 2010 at 7:44 PM, Marshall Schor <[email protected]> wrote:
>> We could copy the build tooling stuff into each project we release (say, the
>> uimaj SDK, the uima-as add-on, and our Add-ons). Then each would be
>> independent. But we would have 3 (maybe more) copies of common build
>> tooling to
>> keep in sync.
> Yeah, that's obviously not a good idea. One way to make this work
> would be to use svn:externals settings, but that's a bit hacky.
>
>> Or, we could keep the build tooling separate and shared, like it is now, but
>> impose a requirement that it be checked out and put in a particular relative
>> path with respect to the other projects' checkout, so we could use Maven's
>> <relativePath> element to help find the parent poms, etc. We had this
>> approach
>> before, but it caused problems because of the necessity to have these
>> checkouts
>> be in a particular relative path relationship.
> I wouldn't use relativePath for that, simply instruct people that they
> need to have a reasonably fresh checkouts and builds of any the
> upstream projects.
>
> Using Tika as an example (even though it's a lot smaller than UIMA),
> the tika-site component we use for managing the Tika web site has a
> SNAPSHOT dependency to Tika trunk. Anyone working on the web site is
> simply instructed to have a recent trunk build whenever changing the
> site.
>
> Note that the Apache parent POM also sets up a snapshot repository
> reference to repository.apache.org, so any SNAPSHOTs posted there will
> automatically be available to all projects that inherit from that POM
> without the need for modifying local Maven settings.
I noticed that, but it doesn't help for initial builds on new machines, unless
you build your build tooling, of course.
Which you do for small projects - just have everything together :-) ...
I changed our website instructions for building from trunk to reflect the two
approaches:
either:
1) check-out and build the build tooling (no need to fiddle settings.xml for
Apache snapshots, because our poms use the Apache parent pom, as you note). or
2) fiddle your settings.xml to include the Apache snapshots, in which case, your
build will find our projects (shared) build artifacts there.
Thanks for your help. I'm now off working on getting the README to go into the
right place in the source build for our top project parent pom. Looks like I
need a build plugin step to copy it into where the source assembly wants to find
the stuff that goes at the top of the source zip... so I'm adding something like
this:
(I show this, in case I'm doing something silly, and there's an easier / more
obvious way to do this)
<!-- to copy README files -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copyReadme</id>
<inherited>false</inherited> <!-- only run at top level -->
<phase>process-resources</phase>
<goals><goal>copy-resources</goal></goals>
<configuration>
<!-- this is where the source assembly configuration gets its
files to put at the top level -->
<outputDirectory>${project.build.directory}/maven-shared-archive-resources/META-INF</outputDirectory>
<resources>
<resource>
<directory>./</directory>
<includes><include>README.*</include></includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
I tried this and it seems to work...
-Marshall
>> Maybe there are other approaches too - please post suggestions :-)
> The easy option would be to simply have all of UIMA under the same
> trunk. That would mean a single release cycle for UIMA. But I guess
> there are good reasons not to do that.
>
> BR,
>
> Jukka Zitting
>
>