我的 jar 是通过 ssh 远程安装的,重要的是我知道安装了哪个版本。这不是通过我当前使用 pom.xml 中的版本号来完成的,因为该版本号是手动更新的。 我想要做什么,却找不到一个像样的插件或一个足够清楚的插件来告诉我。 Jenkins 应该在 pom 文件中构建 rev 版本号(例如 1.0.3. 或 1.0.3- 或 1.0.3_ 或者只是一个称为版本号的附加属性)最好将此版本号作为 jar 名称的一部分以便很容易区分等等) 有什么想法吗?
最佳答案
以 Maven 3.2.1 开头您可以在版本中定义属性,如下所示:${revision}
, ${changelist}
, and ${sha1}
.
<groupId>com.soebes.examples.j2ee</groupId>
<artifactId>parent</artifactId>
<version>1.0.4-${revision}-SNAPSHOT</version>
这是一种解决方案。
您还可以将所有需要的信息放入 MANIFEST.MF 文件中,以便您始终能够准确地说出安装了哪个版本。在那里您可以获取 svn 修订号或 git sha1 以及诸如 CI 解决方案的内部版本号之类的补充信息。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<configuration>
<archive>
<addMavenDescriptor>true</addMavenDescriptor>
<index>true</index>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
<manifestEntries>
<artifactId>${project.artifactId}</artifactId>
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
<revision>${svn.revision}</revision>
<build-number>${BUILD_NUMBER}</build-number>
<build-id>${BUILD_ID}</build-id>
<build-time>${maven.build.timestamp}</build-time>
</manifestEntries>
</archive>
</configuration>
</plugin>
关于maven - jenkins maven 在构建后更改 jar 文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28224584/