0

私は maven を使用して、ローカルの .m2 とリモートのアーティファクト リポジトリにインストールされるいくつかのプロジェクトをビルドします。

これらのアーティファクトの一部をローカル ターゲット フォルダーにダウンロード (maven-dependency-plugin:copy) し、ファイル共有にアップロードする別のプロジェクトがあります。アーティファクトをファイル共有にアップロードするときは、プロジェクトを再実行しても変更されない buildNumber を与える必要があります。たとえば、アーティファクトのビルド番号を取得するにはどうすればよいですか。人工物?

Artifactory でアーティファクトを参照すると、すべてに固有の buildId があります。

4

1 に答える 1

0

最善の解決策は、buildnumber-maven-pluginを使用して VCS などから情報を取得し、この情報を manifest.mf ファイルに入れることです。引き続き maven-dependency-plugin:copy ゴールを使用して、アーティファクトを適切なフォルダーにコピーできます。SNAPSHOT がある場合にのみ、後で jar 自体を調べることができます。

 <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        <version>1.1</version>
        <executions>
          <execution>
            <phase>validate</phase>
            <goals>
              <goal>create</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <doCheck>true</doCheck>
          <doUpdate>true</doUpdate>
        </configuration>
      </plugin>
    </plugins>
  </build>

次のように、 MANIFEST.MFファイルに何を入れるかを定義できます。

<build>
    ...
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.1</version>
        <configuration>
          <archive>
            <manifest>
              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
            </manifest>
            <manifestEntries>
              <Implementation-Build>${buildNumber}</Implementation-Build>
            </manifestEntries>
          </archive>
        </configuration>
      </plugin>
    </plugins>
  </build>
于 2013-01-07T10:22:06.057 に答える