Kurzanleitung für das Maven-Release-Plug-In
publiziert am 03. 07. 2012 um 16:09
Folgende Dinge sind im POM relevant:
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<groupId>bla.bestpracticegroupId>
<artifactId>fakeServiceartifactId>
<version>0.0.9-SNAPSHOTversion>
<packaging>jarpackaging>
<name>fakename>
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
properties>
<scm>
<connection>scm:cvs:pserver:@epcvs:/data/cvs_business_frameworks:bestpractices/fakeBeanconnection>
scm>
<distributionManagement>
<repository>
<id>bla-releasesid>
<url>http://mavenrepo.ch.bla.com:12697/nexus/content/repositories/bla-releasesurl>
repository>
distributionManagement>
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.10version>
<scope>testscope>
dependency>
<dependency>
<groupId>commons-codecgroupId>
<artifactId>commons-codecartifactId>
<version>1.6version>
dependency>
dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-release-pluginartifactId>
<version>2.3.2version>
plugin>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-source-pluginartifactId>
<version>2.1.2version>
<executions>
<execution>
<id>attach-sourcesid>
<phase>verifyphase>
<goals>
<goal>jar-no-forkgoal>
goals>
execution>
executions>
plugin>
plugins>
build>
project>
In der Datei C:\Users\bla\.m2\settings.xml muss folgendes eingetragen werden, damit das distribution-Management läuft.
<?xml version="1.0"encoding="ISO-8859-1"?>DOCTYPE settings PUBLIC "-//APACHE//DTD Documentation V1.3//EN" "document-v13.dtd">
<settings>
<servers>
<server>
<id>bla-releasesid>
<username>bla-integratorusername>
<password>xxxxxxxxxxxxxxxpassword>
server>
servers>
…
Anschliessend können drei Launcher über "Run as Maven…" erstellt werden:
Prepare Dry testet, ob alles so läuft, wie es sollte:
release:prepare -DdryRun
Clean löscht alle generierten Artefakte:
Das Goal heisst entsprechend: release:clean
Release schliesslich ist die "scharfe" Version, die den Release auch wirklich macht:
mit -DreleaseVersion=1.0.0 kann man die releaste Version setzen.
Unter Parameter Name/Value werden die CVS credentials eingetragen.
Das Passwort kann nach den ersten Durchlauf wieder gelöscht werden, da es im File ~/.cvspass abgelegt wird.
Ob der release funktioniert hat, kann an folgenden drei Dingen überprüft werden:
- Das pom hat eine neue –SNAPSHOT Version
- In der CVS-History des pom taucht ein neuer Tag für diese Version auf.
- Und natürlich, in Hudson ist das neue Artefakt verfügbar.