我使用 maven 构建一些项目,这些项目安装到本地 .m2 和远程工件存储库中。
我有另一个项目将其中一些工件下载(maven-dependency-plugin:copy)到其本地目标文件夹,然后将它们上传到文件共享。当我将工件上传到文件共享时,我需要给它一个 buildNumber,如果我重新运行项目,它不应该改变。如何在例如获取工件的内部版本号。神器?
当我浏览工件中的工件时,它们都有唯一的 buildId。
我使用 maven 构建一些项目,这些项目安装到本地 .m2 和远程工件存储库中。
我有另一个项目将其中一些工件下载(maven-dependency-plugin:copy)到其本地目标文件夹,然后将它们上传到文件共享。当我将工件上传到文件共享时,我需要给它一个 buildNumber,如果我重新运行项目,它不应该改变。如何在例如获取工件的内部版本号。神器?
当我浏览工件中的工件时,它们都有唯一的 buildId。
最好的解决方案可能是使用buildnumber-maven-plugin从 VCS 等获取信息并将此信息放入 manifest.mf 文件中。您可以继续使用 maven-dependency-plugin:copy 目标将工件复制到相应的文件夹中。只有在您有 SNAPSHOT 的情况下,您才可以稍后查看罐子本身。
<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>