Gradle: 在发布分支中烧录实际的依赖版本
Gradle: Burning actual dependencies versions in release branch
在我的团队中,我们开发了几个应用程序,都使用相同的内部框架。这个框架分为许多子模块,每个子模块都有自己的版本,每个子模块都作为 jar 发布到 artifactory(maven 存储库)。
当我们发布一个应用程序时,我们会为它创建一个分支,我们希望针对每个框架模块的最新版本编译该分支(这没关系,因为在我们的夜间回归中,我们会根据最新的快照进行编译)。我们使用 gradle,因此这是通过将依赖版本设置为 "latest.release" 来完成的。这非常有效,直到我们需要修复生产中的错误 - 然后我们通过检查发布分支、修复错误、编译、验证和打包应用程序来为已发布的应用程序发布补丁。
问题:latest.release 现在指向一个不同于我们最初编译的版本的发行版本。
我想要的:在发布应用程序时,将其所有已解析的版本(已解析的 latest.release)刻录到 build.gradle(或其他文件)中,这样当我再次编译它时未来我将针对旧版本进行编译。
我想很多开发人员都遇到过这个问题,但我还没有在网上找到任何解决方案。我从未使用过 maven,但在寻找解决方案时,我发现 maven 中有一个插件,release plugin,它正是我需要的。
想知道您是否有解决此问题的方法。
Netflix 有一个插件可以在最近的时间处理锁定依赖版本:https://github.com/nebula-plugins/gradle-dependency-lock-plugin
或者,您可以使用此插件:https://github.com/ben-manes/gradle-versions-plugin 识别具有较新版本的依赖项,并根据需要手动替换它们。
在我的团队中,我们开发了几个应用程序,都使用相同的内部框架。这个框架分为许多子模块,每个子模块都有自己的版本,每个子模块都作为 jar 发布到 artifactory(maven 存储库)。
当我们发布一个应用程序时,我们会为它创建一个分支,我们希望针对每个框架模块的最新版本编译该分支(这没关系,因为在我们的夜间回归中,我们会根据最新的快照进行编译)。我们使用 gradle,因此这是通过将依赖版本设置为 "latest.release" 来完成的。这非常有效,直到我们需要修复生产中的错误 - 然后我们通过检查发布分支、修复错误、编译、验证和打包应用程序来为已发布的应用程序发布补丁。
问题:latest.release 现在指向一个不同于我们最初编译的版本的发行版本。
我想要的:在发布应用程序时,将其所有已解析的版本(已解析的 latest.release)刻录到 build.gradle(或其他文件)中,这样当我再次编译它时未来我将针对旧版本进行编译。
我想很多开发人员都遇到过这个问题,但我还没有在网上找到任何解决方案。我从未使用过 maven,但在寻找解决方案时,我发现 maven 中有一个插件,release plugin,它正是我需要的。
想知道您是否有解决此问题的方法。
Netflix 有一个插件可以在最近的时间处理锁定依赖版本:https://github.com/nebula-plugins/gradle-dependency-lock-plugin
或者,您可以使用此插件:https://github.com/ben-manes/gradle-versions-plugin 识别具有较新版本的依赖项,并根据需要手动替换它们。