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)
  • 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)

more coming...

  • No labels