我想版本控制并锁定“传递”/递归依赖一直向下,这样如果我稍后git checkout PRODUCT_X_Y_Z
并构建它,它将使用确切的所有依赖项的相同版本,甚至是我在build.gradle
中未明确提到的那些版本。
gradle可以实现这一目标吗?
Chapter 52. Dependency Management文档有一个“52.2.2。管理传递依赖”部分,根据模块“A”描述我,而“A”依赖于“B”。 “52.2.4。使用动态版本和更改模块”一节解释了一些依赖项(直接或传递)如何随着时间的推移产生不同的实际.jar
文件。
我见过gradle-dependency-lock-plugin,但doesn't work for gradle >= 2.4,这让我很担心。
是否有更多的本地方式来实现这一目标?我很困惑,任何人都可以标记PRODUCT_X_Y_Z而不能在以后再现它......
答案 0 :(得分:0)
我不确定是否锁定所有版本是你需要的。您始终可以创建PRODUCT_X_Y_Z
标记以及包含所有依赖项列表及其版本的文件。在gradle中生成这样的文件是一项艰巨的任务。
但是,您可以自己锁定依赖项。在dependencies
块中添加所有依赖项。然后将所有依赖项复制到lib
文件夹,并将dependencies
块下的条目替换为指向lib
文件夹的指针。这只是一个简单的解决方法,而不是长期的解决方案。