Chr*_*wes 7 java continuous-integration maven-3 maven
有没有办法在不编辑POM的情况下更改版本号?
<groupId>org.example</groupId>
<artifactId>example</artifactId>
<version>1.0.0</version>
Run Code Online (Sandbox Code Playgroud)
我们有一个CI系统,我们想要发布每晚构建,但没有使用-SNAPSHOT Maven 的解决方案,所以如果1.0.0是当前版本,我们只想拥有CI-NIGHTLY-BIULD-20120426.
我建议用类似的东西mvn deploy -Dversion=CI-NIGHTLY-BIULD-20120426,但显然不是这样.糟糕的解决方案是让CI服务器pom.xml每次编辑,但我认为这是非常不方便的.
谢谢!
我建议使用分类器.
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>1.0</version>
<properties>
<!-- default classifier is empty -->
<my.project.classifier></my.project.classifier>
</properties>
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<classifier>${my.project.classifier}</classifier>
</configuration>
<executions>...</executions>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
和
mvn package -Dmy.project.classifier=NIGHTLY-2012-04-26_02-30
Run Code Online (Sandbox Code Playgroud)
关于分类器的Maven 文档说:
分类器:您可能偶尔会在坐标上找到第五个元素,即分类器.稍后我们将访问分类器,但是现在只需知道这些类型的项目显示为groupId:artifactId:packaging:classifier:version.
和
分类器允许区分从相同POM构建但其内容不同的工件.它是一些可选的任意字符串 - 如果存在 - 将附加到版本号之后的工件名称.作为此元素的动机,请考虑一个项目,该项目提供针对JRE 1.5的工件,但同时也是一个仍支持JRE 1.4的工件.第一个工件可以配备分类器jdk15,第二个工件配备jdk14,以便客户端可以选择使用哪个.
分类器的另一个常见用例是需要将辅助工件附加到项目的主工件.如果浏览Maven中央存储库,您会注意到分类器源和javadoc用于部署项目源代码和API文档以及打包的类文件.
| 归档时间: |
|
| 查看次数: |
1218 次 |
| 最近记录: |