gradle-发布插件+maven发布插件
gradle-release plugin + maven publishing plugin
我正在创建 gradle 作为新 gradle 用户构建,但我过去曾使用过 maven。
我正在尝试重现 Maven 发布插件的操作:
- 将分支版本更改为发布号(在 svn 提交)
- 创建标签(在 svn)
- 在 Nexus OSS 中部署发布标签
- 将分支版本更改为新的快照编号(在 svn 上提交)
如你所见,我正在使用:
- Nexus OSS 作为版本控制库
- SVN 作为 scm
- Gradle (2.8)
我正在尝试使用这两个插件实现我的目标:
-
- 将分支版本更改为发布号(在 svn 提交)
- 创建标签(在 svn)
- 将分支版本更改为新的快照编号(在 svn 上提交)
命令行:gradle发布
Maven Publish Plugin 部署到 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
]
}
您需要设置两个任务之间的依赖关系。这可以通过在 build.gradle
:
中添加这一行来完成
afterReleaseBuild.dependsOn publish
release-plugin 有两个task,就是在release 过程中hook 其他task 的usecase,即beforeReleaseBuild
和afterReleaseBuild
。此任务(以及您设置的依赖项)分别在 build
任务之前或之后执行。
https://github.com/researchgate/gradle-release#custom-release-steps
我正在创建 gradle 作为新 gradle 用户构建,但我过去曾使用过 maven。
我正在尝试重现 Maven 发布插件的操作:
- 将分支版本更改为发布号(在 svn 提交)
- 创建标签(在 svn)
- 在 Nexus OSS 中部署发布标签
- 将分支版本更改为新的快照编号(在 svn 上提交)
如你所见,我正在使用:
- Nexus OSS 作为版本控制库
- SVN 作为 scm
- Gradle (2.8)
我正在尝试使用这两个插件实现我的目标:
-
- 将分支版本更改为发布号(在 svn 提交)
- 创建标签(在 svn)
- 将分支版本更改为新的快照编号(在 svn 上提交)
命令行:gradle发布
Maven Publish Plugin 部署到 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
]
}
您需要设置两个任务之间的依赖关系。这可以通过在 build.gradle
:
afterReleaseBuild.dependsOn publish
release-plugin 有两个task,就是在release 过程中hook 其他task 的usecase,即beforeReleaseBuild
和afterReleaseBuild
。此任务(以及您设置的依赖项)分别在 build
任务之前或之后执行。
https://github.com/researchgate/gradle-release#custom-release-steps