我有一个项目,它是使用 Maven 程序集插件构建的。
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
我有一个文件 BUILD.txt
,其中包含当前的内部版本号。
当我调用 mvn assembly:single
时,我希望 maven-assemble-plugin
生成一个名为 myproduct-1.0- 的 JAR 文件(包含所有依赖项) SNAPSHOT.BUILD.jar
,其中 BUILD 是来自 BUILD.txt
的文本(即,如果 BUILD.txt
包含 172,则结果 JAR 应称为 myproduct-1.0-SNAPSHOT.172.jar
)。
如何从 BUILD.txt
读取文本,以便可以在程序集插件的 finalName
设置中使用它?
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<finalName>${project.build.finalName}.${build}.jar</finalName
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
最佳答案
方法 1
- 使用Maven Properties Plugin
- 更改您的
BUILD.txt
包含buildNumber=NNN
- 使用属性(property)
${buildNumber}
对于<finalName>
方法2
- 假设您使用 SVN 或 Git 等 SCM
- 不需要使用
BUILD.txt
不再 - 使用Maven Build Number Plugin
- 使用属性(property)
${buildNumber}
对于<finalName>
关于java - 如何在 JAR 文件名中包含内部版本号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33954231/