如何跳过maven仓库中的版本或特定模块

max*_*ann 21 deployment repository maven jenkins

Heyho,

我有一个带有这个结构的maven项目:

父:

  • 项目清单
  • API模块
  • 模块2
  • ...
  • 单词数
  • 测试
  • 分布/组装

所以首先我运行父模块,然后我运行构建api的模块,然后运行依赖于api的模块,然后运行包含测试工具的测试模块,最后我运行一个汇编/分发,我打包一些档案中的模块.由于一些问题我无法真正改变方式,它的工作到目前为止完美无缺.

使用jenkins我将它发布到maven repo,但我只想发布例如API和一些模块,而不是测试模块和分发模块.有没有办法跳过它们?不想发布我真正不需要的东西:/

asg*_*oth 28

要正确理解您,您仍然希望运行测试模块,但您不想部署/发布它们.救援的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>
Run Code Online (Sandbox Code Playgroud)

但是,jenkins发布插件仍然会释放所有工件.而不是使用jenkins发布插件,考虑使用maven-release-plugin发布,这很容易做到:

mvn release:prepare
mvn release:perform
Run Code Online (Sandbox Code Playgroud)

由于默认目标deploysite,所有都应该没问题.

只要确保你scm的根pom中有一个标签:

<scm>
    <connection>scm:svn|git:https://...</connection>
    <developerConnection>scm:svn|git:https://...</developerConnection>
</scm>
Run Code Online (Sandbox Code Playgroud)

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

  • 这对我不起作用 - 我在根模块中定义了发布插件,并在子模块中使用跳过配置部署插件.当我运行`mvn release:perform`:'时,这个子模块就会被部署 (2认同)