我正在从 TeamCity 运行 maven 构建,并使用 build.vcs.number 将 Subversion 修订写入我的清单。在任何使用 Subversion 作为 VCS 的 Maven 构建中,TeamCity 添加
-Dbuild.vcs.number=1234
到 maven 命令行,其中 1234 是正在构建的分支中的最新版本。
然后在我的 pom.xml 中,我有
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<build>${build.vcs.number}</build>
</manifestEntries>
</archive>
</configuration>
</plugin>
这一切正常,直到我运行 Maven release:perform(也来自 TeamCity),此时 ${build.vcs.number} 变为空,即使我可以在 TeamCity 构建日志中看到该属性是在命令中传入的线。
maven-release-plugin 文档暗示 Maven 在执行目标期间的某个时间点运行分叉进程 - 这就是我遇到问题的原因吗?
有没有办法可以确保这个特定的属性被传递到那个分叉的进程?