Плагин Gradle-релиз + плагин Maven

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

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

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

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

  • Nexus OSS как хранилище версий
  • SVN as scm
  • Gradle (2,8)

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

  1. Gradle-релиз плагин:

    • Изменить версию ветки на номер релиза (зафиксировать в svn)
    • Создать тег (на SVN)
    • Изменить версию ветки на новый номер снимка (коммит в svn)

    Командная строка: выпуск Gradle

  2. Плагин 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

Другие вопросы по тегам