Gradle + Дженкинс + Artifactory Maven Repo?
У меня есть проект Java, созданный с помощью Gradle, с использованием сервера Jenkins CI, и я хотел бы опубликовать его на сервере Artifactory, используя артефакты, совместимые с Maven. Проект использует Git. Я также хотел бы использовать возможности управления выпуском Jenkins, если это возможно.
Это очень запутанно. Существует по меньшей мере пять плагинов с многократными избыточными функциональными возможностями. Некоторые плагины, похоже, заменяют других. Кажется, что некоторые плагины требуют других.
FYI, пять соответствующих плагинов выглядят следующим образом:
1) Jenkins Artifactory Plugin
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 vs с помощью плагина Jenkins?
Ответы
Ответ 1
- Gradle Плагины Artifactory: Gradle могут развернуть сборку артефактов и создавать информацию напрямую, без необходимости в CI-сервере, используя один из плагинов Artifactory.
-
artifactory
плагин работает с плагином maven
и публикует configurations
, сгенерированный плагином maven
.
-
artifactory-publish
плагин работает с плагином maven-publish
и публикует publications
, сгенерированный плагином maven-publish
.
- Jenkins Artifactory plugin работает в двух режимах:
- Предоставление пользовательского интерфейса для переопределения параметров, указанных в плагинах
artifactory
или artifactory-publish
в Gradle build script.
- Добавление и настройка плагина
artifactory
к Gradle script, если его там нет.
- Он также обеспечивает управление выпуском (для обоих режимов).
Итак, вот что вам нужно решить:
- Используете ли вы один из плагинов Gradle. Наша рекомендация - использовать его (версия конфигурации в сборке script является преимуществом по сравнению с настройкой только для UI.
- Какой плагин вы хотите использовать -
maven
или maven-publish
. Хотя позднее все еще "инкубируется", он гораздо более гибкий, чем первый. Как только вы знаете, с каким плагином maven вы хотите использовать, выберите соответствующий плагин artifactory.
- Вам нужен плагин Artifactory Jenkins в любом случае, если вы хотите использовать функциональные возможности релиза, просто отметьте (или снимите флажок), что "Project использует флажок Artifactory Gradle Plugin".