2012-01-17 2 views
9

私はGitでMaven 3.0.3を使用しています。私は統合ツール(Bamboo)を使用してGitのコードをディレクトリにチェックアウトします。このツールは、Mavenを使用して標準ビルドライフサイクル(コンパイル、テスト、デプロイ)を実行します。私が望むのは、Mavenのデプロイメントが成功した場合、Gitでチェックアウトされているコードのバージョンにタグを付けることです。 Mavenからこれをどうすればできますか?あなたが提供できるサンプル設定は、非常に高く評価されています。Mavenを使って、Git:私のコードの最新バージョンにタグを付けるには?

答えて

5

maven scm pluginを使用してください。関連しているはずのtag functionality in advanced featuresを参照してください。

gitサポートはそのままでは表示されないので、maven-scm-provider-gitexeに依存する必要があります。また、plexus exception issueを克服するには、plexusのそれ以降のバージョンにも依存関係を追加する必要があります。

これが私の仕事です:

<project> 
    <scm> 
     <connection>scm:git:https://[email protected]/my-project.git</connection> 
     <developerConnection>scm:git:https://[email protected]/my-project.git</developerConnection> 
    </scm> 
    <!-- snip --> 
    <build> 
     <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-scm-plugin</artifactId> 
     <dependencies> 
      <dependency> 
       <groupId>org.codehaus.plexus</groupId> 
       <artifactId>plexus-utils</artifactId> 
       <version>2.1</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.maven.scm</groupId> 
       <artifactId>maven-scm-provider-gitexe</artifactId> 
       <version>1.2</version> 
      </dependency> 
     </dependencies> 
     <version>1.0</version> 
     <configuration> 
      <tag>test</tag> 
      <connectionType>connection</connectionType> 
     </configuration> 
     <executions> 
      <execution> 
      <id>tag</id> 
      <phase>deploy</phase> 
      <goals> 
      <goal>tag</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    <!-- snip --> 
</project> 
+0

COol、これは私が欲しいものですが、バックツーバックで実行すると、2回目に "[ERROR] fatal:tag 'qa_release'が既に存在します。私は別の質問としてこれを開く必要があるかもしれません。 – Dave

+0

はい、タグ名には何か動的(プロパティ)が必要です。この例では静的です。 – eis

+0

最新のタグをコマンドラインパラメータとして指定できる場合は、 $ {parameter.version}を使用して、-Dparameter.version = v1.2を使用してmavenを実行すると使用できます。 mavenプラグインによる自動生成が必要な場合は、追加のロジックが必要です。 – eis

0

を私は「小さなオープンソースプロジェクトをお勧めしますQuickTagと呼ばれ、VCSのカップルで動作します - https://code.google.com/p/quicktag-maven-plugin。プラグインを追加すると、ビルド情報を含む静的フィールドを含むJavaクラスが生成されます。 maven-リリース - プラグインだけSCMを宣言する必要が

関連する問題