我有一个使用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中使用 maven
或 maven-publish
?
maven-publish
被标记为 maven
插件的孵化后继者 . 它有多好?它有多稳定?
如何使用Gradle Artifactory插件与标准maven发布插件相比使用Jenkins插件?
1 回答
Gradle Artifactory plugins: Gradle可以直接部署构建工件和构建信息,而无需CI服务器中的其中一个Artifactory插件 .
artifactory
插件与maven
插件一起使用并发布configurations
,由maven
插件生成 .artifactory-publish
插件与maven-publish
插件一起使用,并发布maven-publish
插件生成的publications
.Jenkins Artifactory plugin 有两种工作模式:
提供UI以覆盖Gradle构建脚本中
artifactory
或artifactory-publish
插件中指定的设置 .如果不存在,则将
artifactory
插件添加并配置到Gradle脚本 .它还提供发布管理(适用于两种模式) .
那么,这就是你需要决定的:
是否使用其中一个Gradle插件 . 我们的建议是 - 使用它(与仅使用UI的配置相比,构建脚本中的版本化配置是一个优势 .
您要使用哪个插件 -
maven
或maven-publish
. 虽然后者仍然是'incubating',但它比前者灵活得多 . 一旦您知道要使用哪个maven插件,请选择适当的artifactory插件 .如果要使用发布功能,则需要Artifactory Jenkins插件,只需选中(或取消选中)'Project uses the Artifactory Gradle Plugin'复选框即可 .