【发布时间】:2009-10-06 18:52:53
【问题描述】:
我使用 maven/hudson 来构建我的项目。 hudson 的目标之一是 mvn package,因此我在每个构建中都生成了完整的发行版。有没有办法(可能是包的参数?)我可以将内部版本号附加到生成的存档名称中?
谢谢,
杰夫
【问题讨论】:
我使用 maven/hudson 来构建我的项目。 hudson 的目标之一是 mvn package,因此我在每个构建中都生成了完整的发行版。有没有办法(可能是包的参数?)我可以将内部版本号附加到生成的存档名称中?
谢谢,
杰夫
【问题讨论】:
试试下面的。它应该仅在设置了 BUILD_NUMBER 属性时才激活,因此在不使用 hudson 时您仍会生成正确命名的构建。
<profiles>
<profile>
<id>hudson-build</id>
<activation>
<property>
<name>BUILD_NUMBER</name>
</property>
</activation>
<build>
<finalName>${artifactId}-${version}-${BUILD_NUMBER}</finalName>
</build>
</profile>
</profiles>
我建议将其放入基础 pom.xml 中,然后可以将其作为父级引用到您的其他 pom.xml 配置中。
有关 hudson 传递给 maven 构建的其他属性的列表,请参阅http://weblogs.java.net/blog/johnsmart/archive/2008/03/using_hudson_en.html。
【讨论】:
您可以使用-D[key]=[value] 将任意属性传递给Maven 构建,例如-DbuildNumber=1234,然后将您的pom 中的版本配置为`1.0.0-${buildNumber}。这种方法虽然违背了一般的 Maven 原则。你最好使用Maven的SNAPSHOT处理。 SNAPSHOT 是 Maven 每次更新依赖的关键字。
您还可以使用buildnumber-maven-plugin 每次自动为构建版本添加一个数字。有关详细信息,请参阅此answer。 buildnumber 插件可以设置为根据 SCM 修订、时间戳或序列生成修订。
【讨论】:
package 是程序集的 id。那正确吗?您真的希望使用内部版本号创建程序集吗?