gradle-release 插件 + maven 发布插件

Posted

技术标签:

【中文标题】gradle-release 插件 + maven 发布插件【英文标题】:gradle-release plugin + maven publishing plugin 【发布时间】:2015-11-23 09:16:54 【问题描述】:

我正在以新的 gradle 用户身份创建 gradle 构建,但我过去曾与 maven 合作过。

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

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

如您所见,我正在使用:

Nexus OSS 作为版本控制存储库 SVN 作为单片机 分级 (2.8)

我正在尝试使用这两个插件来实现我的目标:

    Gradle-release Plugin:

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

    命令行:gradle release

    Maven Publish Plugin 部署到 Nexus:

    命令行:gradle publish

有什么想法可以生成一个版本并一次性自动将其部署到 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

release-plugin 有两个任务,分别是beforeReleaseBuildafterReleaseBuild。此任务(以及您设置的依赖项)分别在 build 任务之前或之后执行。

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

【讨论】:

以上是关于gradle-release 插件 + maven 发布插件的主要内容,如果未能解决你的问题,请参考以下文章

可以将 gradle-release-plugin 配置为使用 SemVer 吗?

eclipse maven插件如何添加maven插件,pom里面应该怎么写

有用的maven插件

如何卸载linux 中的maven插件

如何安装maven integration for eclipse 插件

创建maven时出现插件不能用 怎回事