Gradle + Jenkins + Artifactory Maven Repo?

use*_*301 13 artifactory gradle jenkins

我有一个使用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.
Run Code Online (Sandbox Code Playgroud)

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

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

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

JBa*_*uch 18

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

那么,这就是你需要决定的:

  • 是否使用其中一个Gradle插件.我们的建议是 - 使用它(与仅使用UI的配置相比,构建脚本中的版本化配置是一个优势.
  • 你想要使用哪个插件 - maven或者maven-publish.虽然后者仍在"孵化",但它比前者灵活得多.一旦您知道要使用哪个maven插件,请选择适当的artifactory插件.
  • 如果要使用发布功能,则需要Artifactory Jenkins插件,只需选中(或取消选中)"Project using Artifactory Gradle Plugin"复选框即可.