Gradle:在发布分支中刻录实际依赖项版本

时间:2016-10-10 14:48:32

标签: java gradle release dependency-management

在我的团队中,我们开发了几个应用程序,都使用相同的内部框架。这个框架被分成许多子模块,每个模块都有自己的版本,每个模块都作为一个jar发布到artifactory(maven repository)。

当我们发布一个应用程序时,我们为它创建一个分支,我们想要针对每个框架模块的最新版本编译该分支(这没关系,因为在我们的夜间回归中,我们针对最新的快照进行编译)。我们使用gradle所以这是通过将依赖版本设置为“latest.release”来完成的。这非常有效,直到我们需要修复生产中的错误 - 然后我们通过检查发布分支,修复错误,编译,验证和打包应用程序来发布已发布应用程序的补丁。

问题:latest.release现在指向的版本与我们最初编译的版本不同。

我想要的是:在发布应用程序时,在build.gradle(或其他一些文件)中刻录所有已解析的版本(已解析的latest.release),所以当我将来再次编译它时,我将针对旧版本。

我认为很多开发人员都面临这个问题,但我还没有在网上找到任何解决方案。我从未使用过maven,但在寻找解决方案时,我发现maven中有一个插件,发布插件,这正是我所需要的。

想知道您是否有解决此问题的方法。

1 个答案:

答案 0 :(得分:2)

  1. Netflix有一个插件,可以在重复时间处理锁定依赖版本:https://github.com/nebula-plugins/gradle-dependency-lock-plugin

  2. 或者,您可以使用此插件:https://github.com/ben-manes/gradle-versions-plugin来识别具有较新版本的依赖项,并根据需要手动替换它们。