任何人都可以告诉我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).
由于 尼西
答案 0 :(得分:2)
对,有很多选择。我测试了大多数发布插件,并自己为不同的客户编写了几个。我真的推荐nebula-release插件(https://plugins.gradle.org/plugin/nebula.nebula-release)。这是由netflix人员推动的,记录良好,维护良好,并支持所有类型的用例和自定义。
答案 1 :(得分:1)
我一直在使用上面提到过的townsfolk的发布插件,但是由于一些未解决的问题而没有积极开发(更新:似乎Daniel Tschinder接管了该插件的开发,所以可能会有是更新版本。)
最近我发现Axion发布插件不使用单独的文件来保存当前版本,但使用Git提交和标签来确定它。它简化了发布流程,符合持续交付趋势。作者也非常重要。
除了README文件,可以在blog上找到很好的描述。
Axion本身只从您的列表中执行版本测试,但它可以与maven-publish,bintray或任何其他发布插件一起使用,以将工件推送到远程工件存储库。
答案 2 :(得分:1)
为了它的价值,我最近发布了一个我自己的gradle-release-plugin(https://github.com/anshulverma/gradle-release-plugin)。
它适用于约定而不是配置。这就是我首先构建它的原因。 大多数当时我们都想要相同的东西 - 具有快照和标记提交能力的语义版本控制以及对OSS和bintray存储库的发布能力。这是此插件提供的内容,并负责大部分配置。
目前正处于积极发展阶段。如果有任何进步,请随意打开问题。
答案 3 :(得分: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-it
希望这有帮助!