2

谁能让我知道 gradle 是否提供了任何发布插件来执行与 Maven 发布插件类似的任务?我知道我们可以在 gradle 中加载 maven 任务,但如果 gradle 提供了任何内置插件,我们不想这样做并保持清洁。如果有,请发布示例配置或代码。提前致谢。

在 Maven 中,我们通过 Maven 发布插件执行以下任务:

release:clean Clean up after a release preparation.
release:prepare Prepare for a release in SCM.
release:prepare-with-pom Prepare for a release in SCM, and generate release POMs that record the fully resolved projects used.
release:rollback Rollback a previous release.
release:perform Perform a release from SCM.
release:stage Perform a release from SCM into a staging folder/repository.
release:branch Create a branch of the current project with all versions updated.
release:update-versions Update the versions in the POM(s).

谢谢尼廷

4

4 回答 4

2

没错,有很多选择。我测试了大多数发布插件,并自己为不同的客户编写了几个。我真的推荐 nebula-release 插件(https://plugins.gradle.org/plugin/nebula.nebula-release)。这是由 netflix 人员推动的,有据可查,维护良好,并支持所有类型的用例和自定义。

于 2016-09-28T08:03:25.783 回答
1

我一直在使用提到的 townsfolk 的发布插件,但它不再积极开发,有一些未解决的问题(更新:似乎 Daniel Tschinder 接管了该插件的开发,所以可能会有更新的版本)。

最近我发现Axion发布插件不使用单独的文件来保持当前版本,而是使用 Git 提交和标签来确定它。它简化了发布过程,符合持续交付的趋势。什么也很重要作者很负责。

除了 README 文件之外,还可以在他们的博客上找到很好的描述。

Axion 本身只执行列表中的版本控制测试,但它可以与 maven-publish、bintray 或任何其他发布插件一起使用,以将工件推送到远程工件存储库中。

于 2015-02-01T09:15:06.667 回答
1

对于它的价值,我最近发布了我自己的 gradle-release-plugin ( https://github.com/anshulverma/gradle-release-plugin )。

它适用于约定而不是配置。这就是为什么我首先构建它的原因。大多数时候,我们都想要同样的东西——语义版本控制,能够快照和标记提交,以及发布到 OSS 和 bintray 存储库的能力。这就是这个插件提供并负责大部分配置的内容。

它目前正在积极开发中。如果想到任何进展,请随时提出问题。

于 2015-11-01T19:32:36.137 回答
0

据我所知,目前有 4 个发布插件。

townsfolk 插件是最像 maven 插件的插件,到目前为止它工作得很好……但目前没有维护(见 github)。其他 2 个插件的工作方式与 maven 发布插件有很大不同(并且彼此非常相似)。这另外两个插件使用版本控制(svn/git)来跟踪版本号,而不是在 build.gradle 文件中隐藏(和更新)版本号。

您还可以在这里找到各种方法:https : //bitbucket.org/evgenyg/demo-releases-plugin/src/master/build.gradle 这里还有一些不错的幻灯片:http ://www.slideshare.net/evgenyg/release -它

希望这可以帮助!

于 2015-01-02T10:05:22.377 回答