Design (with respect to Maven use) for Apache UIMA
This describes the redesign concerning how we use Maven, done at the time UIMA was moved to a top level project.
Basics
- New SVN top level node: "build" - holding things not part of distributions, but used during building
- Keeping (for now) the following SVN structures:
- uima
- build, uimaj, uimacpp, uima-as, sandbox, site
- under each of these, trunk, branches, tags (except site - only has trunk)
- uima
- parent poms separated from aggregate poms
- aggregate poms used to collect multi-module things together for release
- release numbering of components: supporting either individually incrementing release numbers per module (for instance, as could be done (but isn't currently) in the sandbox), or keeping-all-modules at same release number - like we do for all parts of uimaj framework (even if some parts have no changes from release to release)
- Which to do, and for which components - still needs discussion.
- Maven release plugin provide some support - for instance, the release plugin goal "update-versions" supports setting the version number for all child modules in a multi-module builds
- Parent poms to have the maven convention of version numbers like 1, 2, ...
- They are released separately, and change (hopefully) rarely
- RAT
- run via a profile, on each artifact
- no more doing the assembly and then unzipping it
- activation of the profile for rat may be
- on by default (will try this and see if it's too intrusive)
- on for apache-release profile (to be sure release build is OK)
- on when user wants to run it (use the -Prat to select)
- run via a profile, on each artifact
more coming...