Как собрать все зависимости Gradle в Jenkins workspace

#jenkins #gradle

#Дженкинс #gradle

Вопрос:

В git есть проект gradle и есть задание Дженкинса. Что нужно сделать:

  1. Задание извлекает код проекта из git.
  2. Задание запускает сборку gradle: sh "cd ${workspace}/${projectName}; ${workspace}/${projectName}/gradlew
  3. После этого я хочу, чтобы все зависимости проекта были доступны прямо в рабочей области Jenkins ${workspace}/${projectName} в отдельном каталоге. Допустим ${workspace}/${projectName}/dependecies

Конечно, нет способа редактировать файлы проекта gradle.build .

Может ли это быть разрешено с помощью gradlew командных флагов? Или я должен добавить какой-нибудь сценарий инициализации : ${workspace}/${projectName}/gradlew --init-script /opt/myScript . Если да, то что оно должно содержать?

Ответ №1:

Суть в том, чтобы установить Jenkins workspace как gradle.home . Это решается с помощью --gradle-user-home флага. Окончательное решение:

 sh "rm -rf ${workspace}/${projectName}/caches"
sh "cd ${workspace}/${projectName}"
sh "chmod  x  ${workspace}/${projectName}/gradlew"
sh "${workspace}/${projectName}/gradlew build --gradle-user-home ${workspace}/${projectName}"
sh "zip -r -j ${workspace}/dependencies.zip ${workspace}/${projectName}/caches/modules-2/files-2.1"
  

Теперь все зависимости хранятся в caches/modules-2/files-2.1 каталоге. Для моих нужд я заархивирую его, чтобы отделить dependencies.zip досье.