Gradle + Jenkins + Artifactory Maven Repo?

时间:2014-03-16 05:32:57

标签: jenkins gradle artifactory

我有一个使用Jenkins构建的Java项目,使用Jenkins CI服务器,我想使用与Maven兼容的工件发布到Artifactory服务器。该项目正在使用Git。如果可能的话,我还想使用Jenkins的发布管理功能。

这非常令人困惑。至少有五个插件,具有很多重叠的冗余功能。一些插件似乎取代了其他插件。有些插件似乎需要其他插件。

仅供参考,五个相关的插件似乎是:

1)Jenkins Artifactory插件 https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+Plugin

2)Gradle" maven"插入 http://www.gradle.org/docs/current/userguide/maven_plugin.html

3)Gradle" maven-publish"插入 http://www.gradle.org/docs/current/userguide/publishing_maven.html

4)Gradle" artifactory"插入 https://www.jfrog.com/confluence/display/RTF/Gradle+Artifactory+Plugin

5)Gradle" artifactory-publish"插入 http://www.jfrog.com/confluence/display/RTF/Gradle+1.6+Publishing+Artifactory+Plugin

设置此功能的最佳方法是什么?

如果我使用Jenkins Artifactory插件时没有提到任何其他插件,我会收到错误:

No publish configurations specified for project ':' and the default 'archives' configuration does not exist.
Cannot publish pom for project ':my-great-app' since it does not contain the Maven plugin install task and task ':my-great-app:artifactoryPublish' does not specify a custom pom path.

我假设我需要在build.gradle中使用mavenmaven-publish

maven-publish被标记为maven插件的孵化后继者。它有多好?它有多稳定?

如何使用Gradle Artifactory插件与标准maven发布插件相比,使用Jenkins插件?

1 个答案:

答案 0 :(得分:18)

  • Gradle Artifactory插件:Gradle可以直接部署构建工件并构建信息,而无需CI服务器中的其中一个Artifactory插件。
    • artifactory插件可与maven插件配合使用,并发布由configurations插件生成的maven
    • artifactory-publish插件适用于maven-publish插件,并发布publications插件生成的maven-publish
  • Jenkins Artifactory插件有两种模式:
    • 提供用于覆盖Gradle构建脚本中artifactoryartifactory-publish个插件中指定的设置的UI。
    • 在Gradle脚本中添加和配置artifactory插件(如果不存在)。
    • 它还提供发布管理(适用于两种模式)。

所以,您需要决定:

  • 您是否使用其中一个Gradle插件。我们的建议是 - 使用它(构建脚本中的版本化配置与仅使用UI的配置相比具有优势。
  • 您要使用哪个插件 - mavenmaven-publish。虽然后者仍在“孵化”,但它比前者更灵活。一旦您知道要使用哪个maven插件,请选择适当的artifactory插件。
  • 如果你想使用发布功能,你需要Artifactory Jenkins插件,只需检查(或取消选中)项目使用Artifactory Gradle插件'复选框。