Развертывание проекта gradle в nexus через bamboo
У меня есть проект java с gradle, и я использую Bamboo в качестве своего CI / CD.
Мой план сборки создает jar, а мой план развертывания (предполагает) развертывание jar в nexus. Моя сборка работает идеально и создает артефакты (jar, файл build.gradle
, файл gradle.properties
и файл gradle.settings
).
Когда я хочу запустить свой план развертывания, я запускаю команду uploadArchives
в bamboo. Эта команда также запускает команду jar
, которая уничтожает мой jar (делает его 261 байт). Решение, которое я нашел, это просто сказать грэдлу пропустить команда jar
(используя -x jar
), но я чувствую, что есть лучшее решение.
Благодарим!
1 ответ:
Это то, как работает Gradle, и это зависит от того, как вы настроили свои сборки. Но вообще говоря, вы можете создать задачу, которая публикует только файл (это ни от чего не зависит). Вам нужно будет использовать плагин maven-publish. Например, рассмотрим следующую конфигурацию
apply plugin: 'maven-publish' group= "gradle-test" version = "1.0-SNAPSHOT" task produce { ext { outputFile = file("$buildDir/file.txt") } outputs.file outputFile doLast { outputFile << "Hello World!" } } task zipGreeting(type: Zip) { from produce.outputs } publishing { publications { newGreeting(MavenPublication) { artifact zipGreeting } oldGreeting(MavenPublication) { artifact { produce.outputFile } } } }
Со следующей конфигурационной задачей
publishNewGreetingPublicationToMavenLocal
зависит отzipGreeting
иproduce
(поскольку она зависит от выводаproduce
), поэтому в конце Gradle вызовет их, если их выходы не являются актуальными (I предположим, что это происходит с вашейjar
задачей - > Gradle up-to-date check зависит от локального.gradle
каталога кэша)Но
publishOldGreetingPublicationToMavenLocal
не имеет явной зависимости от какой-либо другой задачи, поэтому если вы вызоветеgradle publishOldGreetingPublicationToMavenLocal
. Gradle попытается найти упомянутый файл и просто загрузить его в Maven Local. Очевидно, что он потерпит неудачу, если файл не будет там.