Gradle -release плагин + maven издательский плагин

Я создаю gradle как новый пользователь gradle, но я работал с maven в прошлом.

Я пытаюсь воспроизвести действия плагина релиза maven:

  • Измените версию ветки на номер выпуска (commit at svn)
  • Создать тег (на svn)
  • Разверните тег release в Nexus OSS
  • Изменить версию ветки на новый номер снимка (commit at svn)

Как вы можете видеть, я использую:

  • Nexus OSS в качестве хранилища версий
  • SVN как scm
  • Gradle (2.8)

Я пытаюсь достичь своих целей с помощью этих двух плагинов:

  • Gradle -release Plugin:

    • Измените версию ветки на номер выпуска (commit at svn)
    • Создать тег (на svn)
    • Изменить версию ветки на новый номер снимка (commit at svn)

    Командная строка: Gradle release

  • Плагин Maven Publish для развертывания в Nexus:

    Командная строка: Gradle публикация

Любые идеи о том, как я могу сгенерировать выпуск и автоматически развернуть его в Nexus за один снимок?

Ниже мой build.gradle:

plugins {
 id 'net.researchgate.release' version '2.3.4'
}
apply plugin: 'maven-publish'
/*------------------------
----- PUBLISH PLUGIN -----
--------------------------
https://docs.gradle.org/current/userguide/publishing_maven.html
--------------------------*/
publishing {
 publications {
 maven(MavenPublication) {
 groupId mavenGroup
 artifactId mavenArtifact
 version version
 from components.java
 }
 }
 repositories {
 maven {
 if(project.version.endsWith('-SNAPSHOT')) {
 url "${nexusUrl}/content/repositories/repo-snapshots"
 } else {
 url "${nexusUrl}/content/repositories/repo-releases"
 }
 credentials {
 username nexusUsername
 password nexusPassword
 }
 }
 }
}
/*------------------------
----- RELEASE PLUGIN -----
--------------------------
https://github.com/researchgate/gradle-release
--------------------------*/
release {
 failOnCommitNeeded = false 
 failOnUnversionedFiles = false
 scmAdapters = [
 net.researchgate.release.SvnAdapter
 ]
}
1 ответ

Вам нужно настроить зависимость между двумя задачами. Это можно сделать, добавив эту строку в свой build.gradle:

afterReleaseBuild.dependsOn publish

В плагине выпуска есть две задачи, которые в точности предназначены для использования других задач в процессе выпуска, а именно beforeReleaseBuild и afterReleaseBuild. Эти задачи (и установленные вами зависимости) выполняются до или после задачи build.

https://github.com/researchgate/gradle-release#custom-release-steps

licensed under cc by-sa 3.0 with attribution.