gradle-release插件+ maven发布插件

Jau*_*Mut 9 deployment publish release gradle gradle-release-plugin

我正在创建gradle构建作为新的gradle用户,但我过去曾与maven合作过.

我正在尝试重现maven发布插件的操作:

  • 将分支版本更改为版本号(在svn提交)
  • 创建一个标签(在svn)
  • 在Nexus OSS中部署发布标记
  • 将分支版本更改为新的快照编号(在svn提交)

如你所见,我正在使用:

  • Nexus OSS作为版本存储库
  • SVN为scm
  • Gradle(2.8)

我试图用这两个插件实现我的目标:

  1. Gradle-release插件:

    • 将分支版本更改为版本号(在svn提交)
    • 创建一个标签(在svn)
    • 将分支版本更改为新的快照编号(在svn提交)

    命令行:gradle release

  2. 部署到Nexus的Maven Publish插件:

    命令行: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
    ]
}
Run Code Online (Sandbox Code Playgroud)

Dan*_* T. 16

您需要在两个任务之间设置依赖关系.这可以通过在您的build.gradle:中添加以下行来完成:

afterReleaseBuild.dependsOn publish
Run Code Online (Sandbox Code Playgroud)

剥离插件有两个任务,这些的确在释放过程挂钩等任务,也就是的用例beforeReleaseBuildafterReleaseBuild.此任务(以及您设置的依赖关系)在build任务之前或之后执行.

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