Mat*_*ula 7 continuous-integration maven-2
我们正在将主要构建过程从ant转换为maven.我们将TeamCity用于持续集成服务器(CI).
我们希望使用CI服务器启动(夜间)版本,其版本包含内部版本号,如1.0.0.build#.这些构建将安装在我们的本地maven存储库中,供其他项目使用.因此CI服务器将管理版本,maven将构建项目,maven存储库将使构建可供其他项目访问.
我打算使用以下命令从CI服务器启动构建:
mvn -Dversion=1.0.0.25 install
Run Code Online (Sandbox Code Playgroud)
该项目的pom将有一个虚假的版本号,-D标志将覆盖它,如:
<version>0.0.0.0</version>
Run Code Online (Sandbox Code Playgroud)
此方法的问题是maven安装插件仅使用pom文件中的版本,而不是命令行中传递的版本.这是在这个maven问题中注意到的.
因此,自从2006年8月以来这个问题已经存在并且尚未修复,我认为这不是" maven方式 ".所以我的问题是,如何在持续集成的情况下使用maven在存储库中安装版本化工件?
听起来你想用独特的版本构建SNAPSHOT版本.
因此,在您的POM中声明版本为:
<version>#.#.#-SNAPSHOT</version>
Run Code Online (Sandbox Code Playgroud)
然后,在POM 的distributionManagement部分中,通过(请参阅Maven的POM参考)启用snapshotRepository的唯一版本:
<snapshotRepository>
<uniqueVersion>true</uniqueVersion>
<id>your-snapshot-repo-id</id>
<name>Your Snapshots</name>
<url>http://your-snapshot-repo-url/maven</url>
</snapshotRepository>
Run Code Online (Sandbox Code Playgroud)
仅供参考,请注意Maven约定建议将版本声明为major.minor.revision.所以,1.0.25而不是1.0.0.25.如果你能够使用这个版本控制方案,那么在Maven世界中,事情会更顺畅.
Matthew的答案提供了一个解决方案,其中工件上传到具有所需版本号的本地和远程存储库,即存储库中的路径包含正确的版本号,但是,Maven始终安装和部署仍将包含的源POM文件将${ciVersion}在版本元素.
如果您有一个具有共同父级的多模块,如下所示:
<project xmlns="..." xmlns:xsi="..." xsi:schemaLocation="...">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>myParent</artifactId>
<groupId>com.stackoverflow</groupId>
<version>${ciVersion}</version>
</parent>
<artifactId>myChild</artifactId>
...
</project>
Run Code Online (Sandbox Code Playgroud)
您将无法引用myChild模块的专用版本,因为依赖项解析将存在错误,无法找到myParent具有版本的模块${ciVersion}.
但是,您可以使用resolve-pom-maven-plugin将POM上载到本地和远程存储库,其中POM中的所有变量都被其实际值替换.为此,您必须将以下代码段添加到(父)POM中:
...
<build>
<plugins>
<plugin>
<groupId>com.sap.prd.mobile.ios.maven.plugins</groupId>
<artifactId>resolve-pom-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<id>resolve-pom-props</id>
<goals>
<goal>resolve-pom-props</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6457 次 |
| 最近记录: |