#jenkins #gradle #artifactory
#Дженкинс #gradle #артефактор
Вопрос:
Я использую Gradle и Jenkins и хочу развернуть артефакты в Artifactory. К сожалению, это развертывание работает только один раз, когда я запускаю сборку в Jenkins.
Если я удалю рабочую область и папку ~/.gradle на сервере Jenkins, развертывание будет выполнено снова. Недостаточно удалить только рабочую область.
Для меня это похоже на ошибку. Есть ли у меня какие-либо неизвестные конфликты версий. Или это что-то другое, чего я не вижу. Спасибо за любую помощь.
Окружающая среда:
- Дженкинс 2.7.3
- Gradle 3.1
- Artifactory 4.13.0
- Плагин Jenkins Artifactory 2.7.2
Сценарий сборки Gradle: (на основе примера из jfrog)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '4.4.5')
}
}
allprojects {
apply plugin: 'java'
apply plugin: 'maven-publish'
repositories {
jcenter()
}
group = 'org.jfrog.example.gradle'
version = '1.0.1-SNAPSHOT'
status = 'integration'
}
artifactory {
publish {
defaults {
publishConfigs('archives')
}
}
}
// Setting this property to true will make the artifactoryPublish task
// skip this module (in our case, the root module):
artifactoryPublish.skip = true
Настройки плагина Jenkins Artifactory:
- [x] Gradle-Artifactory-Интеграция
- [x] Захват и публикация информации о сборке
- [x] Опубликовать артефакты в Artifactory
- [x] Опубликовать дескрипторы Maven
- [x] Используйте шаблоны, совместимые с Maven
Rest отключен (не установлен).
Войдите в Jenkins (консольный вывод) при втором запуске с измененной версией и измененным исходным кодом:
Jenkins Artifactory Plugin version: 2.7.2
[Gradle] - Launching build.
[CdExampleArtifactory] $ cmd.exe /C '""C:Program Files (x86)Jenkinstoolsgradle-3.1bingradle.bat"' --init-script c:/temp/init-artifactory8368571638486556211gradle artifactoryPublish amp;amp; exit %%ERRORLEVEL%%"
:artifactoryPublish
:api:artifactoryPublish
:services:artifactoryPublish
:shared:artifactoryPublish
:services:webservice:artifactoryPublish
BUILD SUCCESSFUL
Total time: 2.422 secs
Build step 'Invoke Gradle script' changed build result to SUCCESS
Finished: SUCCESS
Похоже, что задача не запускает процесс сборки (jar и т. Д.).
Комментарии:
1. вы где-то работаете
gradle build
в своей работе jenkins?2. да, сборка выполняется как задача. Если я удалю ~/.gradle, сборка будет вызвана в любом случае, если я задам ее как задачу или нет. При втором запуске artifactoryPublish ничего не делает, независимо от того, настроена сборка или нет.
Ответ №1:
Использование последней версии плагина Gradle Artifactory версии 4.4.7 решает проблему совместимости с Gradle 3.1.
Фрагмент сборки Gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath(group: 'org.jfrog.buildinfo', name: 'build-info-extractor-gradle', version: '4.4.7')
}
}
Обратите внимание на версию.
Ответ №2:
Я нашел решение своей проблемы.
Я должен деактивировать деамон gradle на сервере jenkins (через GRADLE_OPTS).
Комментарии:
1. можете ли вы показать, как это делается точно — это было бы полезно для сообщества.