2

実行時に私の戦争のmaven deployプラグインによって生成された完全なアーティファクトバージョン/ビルド番号を実行時に取得する方法はありますか?

Maven プロセスが値を含むプロパティ ファイルを生成してパッケージ化していれば問題ありません。

私のプロジェクトでは、デプロイごとに一意の (タイムスタンプ付きの) アーティファクト バージョンが生成されることに注意してください。

4

2 に答える 2

1

これを試して:

<configuration>
    <archive>
        <manifest>
            <addDefaultImplementationEntries/>
            <addDefaultSpecificationEntries/>
        </manifest>
    </archive>
</configuration>

これにより、戦争を構築する pom からの Maven の詳細が MANIFEST.MF ファイルに追加され、実行時に読み取ることができます。

私がときどき使用するもう 1 つの方法は、プロパティ ファイルのフィルタリングを使用し、そこに pom 値をドロップすることです。これは、プロパティ ファイル/構成の読み込みメカニズムが既にある場合に便利です。

次に、pom と同じ値を使用するデプロイが完了したら、問題ありません。

-クリス

于 2014-07-05T07:44:09.600 に答える
-1

maven-jar-pluginを使用してマニフェスト ファイルにパッケージ化できます。このプラグインは、必要に応じてアプリケーションから読み取ることができます。

pom.xml のプロパティをマニフェスト ファイルに書き込む基本的な構成を次に示します。

      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>2.4</version>
          <configuration>
              <archive>
                  <manifest>
                      <addClasspath>false</addClasspath>
                  </manifest>
                  <manifestEntries>
                      <Implementation-Vendor>Vendor Name</Implementation-Vendor>
                      <Implementation-Version>${revision}</Implementation-Version>
                      <Build-Timestamp>${timestamp}</Build-Timestamp>
                      <Build-Number>${release}_${revision}</Build-Number>
                  </manifestEntries>
              </archive>
          </configuration>
          <executions>
          <!-- your jar executions here -->
          </executions>           
      </plugin>

プロパティ値は pom.xml で次のように定義されます。

<properties>
    <timestamp>${maven.build.timestamp}</timestamp>
    <release>DevelopmentBuild</release>
    <revision>Some Value</revision>
<properties>

編集:

これは、maven-war-pluginを使用して行うこともできます。WAR マニフェストのカスタマイズの詳細については、こちら を参照してください

于 2014-06-21T06:04:51.153 に答える