我有以下 pom.xml
<project>
<properties>
<buildNumber>dev</buildNumber>
</properties>
<build>
<finalName>${project.artifactId}-${project.version}-${buildNumber}</finalName>
</build>
</project>
这在开发机器上运行良好。如果我跑mvn package
,我有project-1.1-dev.war
神器。如果我跑步mvn package -DbuildNumber=121
,我有package-1.1-121.war
.
project-1.1-dev.war
但是尽管属性传递给了 maven,但 CI 服务器(TeamCity)总是得到buildNumber
(如果我从中删除默认属性定义pom.xml
,maven 会使用正确的文件名构建工件)。
似乎系统属性解析优先级在某种程度上取决于平台(开发人员机器和 TC - 2.2.1 上的 Maven 版本相等)?