【发布时间】:2011-12-12 23:44:46
【问题描述】:
我在 Artifactory 中运行 maven 构建和存储文件。我面临的一个问题是,当我尝试使用 -snapshot 版本时,它会覆盖 Artifactory 中的二进制文件。我尝试使用 Maven 内部版本号插件,但遇到了问题。我参考了这个 http://blog.codehangover.com/track-every-build-number-with-maven/
在下面描述我做了什么?
-
使用以下行更新了 masterpom.xml。
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>buildnumber-maven-plugin</artifactId> <version>1.0-beta-3</version> <executions> <execution> <phase>validate</phase> <goals> <goal>create</goal> </goals> </execution> </executions> <configuration> <doCheck>false</doCheck> <doUpdate>false</doUpdate> <format>${version}.{0,number}</format> <items> <item>buildNumber</item> </items> </configuration> </plugin> -
现在我更新ear和webproject的pom如下
<build> <finalName>${project.artifactId}-${project.version}.${buildNumber}</finalName> </build>
当我运行 mvn clean install 时,生成了 ear 和 war,但是当我检查 ear 内部的 war 时,我发现它类似于 war-1.0-SNAPSHOT-null.war。我相信战争和耳朵无法获得buildNumber参数。我能够成功生成 buildNUMer.property 文件,并且能够通过运行 buildnumber:create 插件来增加数字。这是我的问题
- 我在这里做错了什么以及为什么没有选择 buildNumber 参数。
- 我还想生成所有二进制文件,包括以下格式的 jars binary-version-Snapshot.${buildNumber}。那么我是否需要更新每个文件的 pom 或任何其他方式来更新它?
- 此外,我们正在使用 Hudson 构建进行持续集成,并且我们希望将开发人员构建与 Hudson 构建号分开。如果我们不想在 Hudson 构建之后检查 buildNumber.properties,我们如何实现这一点。
【问题讨论】: