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 有两个任务,分别是beforeReleaseBuild
和afterReleaseBuild
。此任务(以及您设置的依赖项)分别在 build
任务之前或之后执行。
https://github.com/researchgate/gradle-release#custom-release-steps
【讨论】:
以上是关于gradle-release 插件 + maven 发布插件的主要内容,如果未能解决你的问题,请参考以下文章
可以将 gradle-release-plugin 配置为使用 SemVer 吗?
eclipse maven插件如何添加maven插件,pom里面应该怎么写