Дженкинс Gradle Артефакты: развертывание работает только один раз

#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. можете ли вы показать, как это делается точно — это было бы полезно для сообщества.