Release PluginThis is a Maven 3.x Plugin which is used by Apache Commons releases. See the Development page for information to help maintain this plugin. The main purpose of the plugin is to automate the steps of our, namely
The Apache Commons Project's, release process. Currently we have the mechanics
for detaching distribution artifacts (i.e. all Plugin GoalsAvailable Goals (which are meant to be used together; the only reason they are separated is for code readability):
Using the plugin
Configure the plugin as the last plugin in the N.B. This is now done in the Commons Parent POM, so is not needed in the component POM. <plugin> <groupId>org.apache.commons</groupId> <artifactId>commons-release-plugin</artifactId> <version>1.8.0</version> <executions> <execution> <id>clean-staging</id> <phase>post-clean</phase> <goals> <goal>clean-staging</goal> </goals> </execution> <execution> <id>detach-distributions</id> <phase>verify</phase> <goals> <goal>detach-distributions</goal> </goals> </execution> <execution> <id>stage-distributions</id> <phase>deploy</phase> <goals> <goal>stage-distributions</goal> </goals> </execution> </executions> </plugin> The following properties need to be defined in the component POM if not already defined <properties> <!-- Previous version of the component (used for reporting binary compatibility check)--> <commons.bc.version>m.n</commons.bc.version> <commons.release.isDistModule>true</commons.release.isDistModule> </properties>
Ensure your Release Manager details are defined in your Maven <settings> ... <profiles> ... <profile> <id>active-profile</id> <properties> <commons.releaseManagerName>Your Name</commons.releaseManagerName> <commons.releaseManagerKey>Your Signing Key Hex ID</commons.releaseManagerKey> </properties> </profile> </profiles> <activeProfiles> <!-- define active profile name --> <activeProfile>active-profile</activeProfile> </activeProfiles> ... </settings> After the above configuration performing the release would occur by (note. more in depth details can be found at Preparations For A Release):
distServer plugin configuration parameter (property commons.distServer )
to specify a server definition in Maven settings.xml which defines your (encrypted, right?) authentication info.
If the component is new, then, before running this maven command, you would want to create
the requisite subversion directory |