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