2016-10-10 47 views
2

在我的团队中,我们开发了几个应用程序,都使用相同的内部框架。这个框架被分离成许多子模块,每个模块都有自己的版本,并且每个模块都作为jar发布到artifactory(maven存储库)。Gradle:在发布分支中刻录实际的依赖关系版本

当我们发布一个应用程序时,我们为它创建了一个分支,我们希望根据每个框架模块的最新版本来编译该分支(没关系,因为在我们每晚的回归中,我们会根据最新的快照编译)。我们使用gradle,这是通过将依赖版本设置为“latest.release”来完成的。这很好,直到我们需要修复生产中的错误 - 然后我们通过检查发布分支,修复错误,编译,验证和打包应用程序,为发布的应用程序发布补丁。

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

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

我认为很多开发者都面临这个问题,但我还没有找到任何解决方案。我从来没有使用过maven,但在寻找解决方案时,我发现maven中有一个插件,发布插件,完全符合我的需求。

想知道你是否有解决这个问题的方法。

+1

Netflix公司有一个插件,这是否:https://github.com/nebula-plugins/gradle-dependency-lock-plugin – RaGe

+0

@RaGe看起来很有希望!将检查出来。谢谢。 – ItamarBe

+0

@RaGe正是我所需要的!谢谢 – ItamarBe

回答