Reinhard Poetz wrote:

> a) Everybody learns to run the release plugin and produces artifacts
> himself and can deploy them to his own repositories. Question (to Jorg):
> Is this possible at all (IIUC the release plugin automatically tags your
> release in SVN)? And if yes, how difficult is it?


The release plugin *can* do 2 things (note that you don't *have* to use
it to start releasing artifacts, it is supposed to make your life easier
though), these materialize under the form of 2 goals in the plugin


release:prepare
---------------

a. only possible if you have non-snapshot dependencies in the pom
b. m2 checks if your local working has any uncommitted changes and will
refuse to do the release preparation if you have any
c. if a&&b, then m2 goes through the release preparation:
  - asks you for the release version for all modules in the release
  - asks you for the name of the release tag
  - asks you for next development version for all modules in the release
d. changes all poms using the version numbers for the release
e. does full build integration build with all tests, these must not fail
in order for the release preparation to continue
f. commit the transformed poms
g. tag the current revision
h. changes all poms using the version numbers for the next development
version

(well i just noticed i'm describing exactly this here:
http://maven.apache.org/plugins/maven-release-plugin/introduction.html)

release:perform
---------------
- checks out the tag that was specified for the release during
release:prepare
- runs a full integration build with all tests on the checked out tag
- builds the jars
- deploys them to the repository


I toyed around with the plugin over the weekend, it is certainly not as
easy as the docs make it sound like. There are a few annoying flaws (eg
MRELEASE-123) that make it hard for novice maven users to do a release
with one or two commands.

If this process can be automated i cannot tell yet, from my experience
until now i'ld say not because way too fragile.

Don't forget that there is always the manual way, changing pom
descriptors and tagging modules is not that hard for a couple of modules.


Regards,
Jorg

Reply via email to