Rémy Schumm blog ingénieur

Kurzanleitung für das Maven-Release-Plug-In

publiziert am 03. 07. 2012 um 16:09

Dieser Beitrag wurde aus dem alten Blog importiert. (Link zum Orginal in Blogger)


Pom:
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>



Nexus-Zugang:
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>



Run-as-Maven Launcher:
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. 







zurück zum Seitenanfang