一尘不染

如何跳过Maven存储库中的发行版或特定模块

jenkins

嘿嘿

我有一个与这个结构的Maven项目:

父母:

  • 项目清单
  • API模块
  • 模块2
  • 模块5
  • 测试
  • 分销/组装

因此,首先运行父模块,然后运行构建api的模块,然后运行依赖api的模块,然后运行包含要测试的工具的测试模块,最后运行组装/发行版,其中打包一些归档中的模块。由于某些问题,我无法真正改变方法,并且到目前为止效果很好。

使用詹金斯,我将其发布到了Maven仓库中,但是我只想发布例如API和一些模块,而不是测试模块和分发模块。有没有办法跳过它们?不想发布我真正不需要的东西:/


阅读 195

收藏
2020-07-25

共1个答案

一尘不染

为了正确理解您,您仍然想要运行测试模块,但是您不想部署/发布它们。在Maven的部署,插件来救援!至工件仍将构建,但不会部署。

  <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

由于默认目标deploysite,所以一切正常。

只要确保您scm在根pom中有一个标签即可:

<scm>
    <connection>scm:svn|git:https://...</connection>
    <developerConnection>scm:svn|git:https://...</developerConnection>
</scm>

并且您的版本控制工具命令(git,svn,…)在PATH上可用。

2020-07-25