On 10/25/2010 2:06 PM, Marshall Schor wrote:
>
> On 10/22/2010 3:21 PM, Marshall Schor wrote:
>>> 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)
> This was silly. Just putting the README at the top level was enough to get it
> copied into the
> source-release.zip by the assembly process, when using -Papache-release
> profile.
>
So, well, this isn't quite correct. Things placed here get copied into the top
of the top project, not the top level of the archive.
That is, if the archive contains a top project TOP, the archive would have:
Archive-name
TOP
files-copied-to-top-of-the-top-project
...
LICENSE
NOTICE
etc - files at the top of the archive.
To get files to go here, using standard Apache source-release build conventions,
the files need to be placed in the
${project.build.directory}/maven-shared-archive-resources/META-INF, or a list of
files that should be copied from the project's top level to the archive top
level needs to be added to the assembly instructions.
I'll do this latter, I think.
-Marshall
> -Marshall
>> <!-- 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
>>>
>>>
>