Heyho,
我有一个带有这个结构的maven项目:
父:
首先我运行父模块,然后运行构建api的模块,然后运行依赖于api的模块,然后运行包含测试工具的测试模块,最后运行汇编/分发我将一些模块打包在一个档案中。 由于一些问题,我无法真正改变方式,它的工作至今仍然完美。
使用jenkins我将它发布到maven repo,但我只想发布例如API和一些模块,而不是测试模块和分发模块。 有没有办法跳过它们? 不想发布我真正不需要的东西:/
答案 0 :(得分:25)
为了正确理解您,您仍然希望运行测试模块,但您不想部署/释放它们。救援maven-deploy-plugin!仍会构建工件,但不会部署。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.7</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
然而,jenkins发布插件仍会释放所有工件。而不是使用jenkins发布插件,考虑使用maven-release-plugin发布,这很容易做到:
mvn release:prepare
mvn release:perform
由于default goals是deploy
和site
,所以一切都应该没问题。
请确保您的根pom中有scm
标记:
<scm>
<connection>scm:svn|git:https://...</connection>
<developerConnection>scm:svn|git:https://...</developerConnection>
</scm>
并且您的版本控制工具命令(git,svn,...)在PATH上可用。
答案 1 :(得分:2)
您可以添加maven命令行选项以指定要在jenkins中构建的模块。
-pl,--projects <arg> Comma-delimited list of specified
reactor projects to build instead
of all projects. A project can be
specified by [groupId]:artifactId
or by its relative path.
答案 2 :(得分:0)
聚合器项目的目的是结合简单项目的构建要求。如果您的基本项目有不同的建筑要求,请考虑添加新的聚合器项目。
禁用当前聚合器项目中Maven存储库的部署,并创建一个仅包含您要部署的模块的新聚合器项目。
将此新项目添加到Jenkins,使其依赖于您的原始项目并将其配置为部署到您的存储库。