24

バージョン 0.0.1-SNAPSHOT のプロジェクトがあり、TeamCity を介してビルドすると、ビルドをトリガーした Subversion リビジョンである build.vcs.number プロパティも取得します。

私たちのアセンブリでは、foo-distribution-0.0.1-SNAPSHOT.zip のような名前の zip ファイルを作成しますが、build.vcs.number プロパティをアーティファクト名に挿入して foo- distribution-0.0.1.12345-SNAPSHOT.zip?

バージョン番号の数値部分だけである組み込みプロパティ、または -SNAPSHOT 部分を分割する他の方法はありますか?

編集: pom.xml バージョンを ${my.version}-SNAPSHOT として設定し、プロパティで my.version を定義しようとしました。これは、解析できないと文句を言う Maven Release Plugin を除いて、常に機能します。バージョン (当然のことながら、次の開発バージョンも自動推測できません)。

4

3 に答える 3

54

この質問は少し時代遅れだと思いますが、同様の状況に遭遇したばかりで、これが解決方法です。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.8</version>
    <executions>
      <execution>
        <id>parse-version</id>
        <goals>
          <goal>parse-version</goal>
        </goals>
      </execution>
    </executions>
</plugin>

このビルド ヘルパー プラグインの「parse-version」モジョが行うことは、次のプロパティを提供することです。これらのプロパティは、必要に応じて使用できます。

parsedVersion.majorVersion
parsedVersion.minorVersion
parsedVersion.incrementalVersion
parsedVersion.qualifier
parsedVersion.buildNumber

これで、目的のバージョンの「パーツ」がすべてカバーされるはずです。私は現在これを使用して、マニフェスト バージョンに「-SNAPSHOT」を含めることができず、ドットで区切られた最大 4 つの数字でなければならない chrome 拡張機能を構築しています。私のユースケースでは、この組み合わせを使用して目的の結果を生成します。

"version":"${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}"

したがって、基本的に「-SNAPSHOT」を削除しているため、拡張機能のローカル開発コピーがテスト用に適切にインストールされます。パーツで好きなものを作ることができます。=)

于 2013-08-14T14:40:00.937 に答える