Gradle 中的动态版本控制



我正在尝试为我的应用程序使用 gradle 中的动态版本,如 gradle 文档中所述。

但它没有按预期工作。

我的本地联结具有以下库版本。

<metadata>
<groupId>in.test</groupId>
<artifactId>test</artifactId>
<versioning>
<release>1.0.1</release>
<versions>
<version>0.0.2</version>
<version>0.0.3</version>
<version>0.0.7</version>
<version>0.0.8</version>
<version>0.0.9</version>
<version>0.0.10</version>
<version>1.0.0</version>
<version>1.0.1</version>
</versions>
<lastUpdated>20170407231704</lastUpdated>
</versioning>
</metadata>

但是当我尝试使用如下所示的动态版本时,它总是选择 1.0.0 而不是 1.0.1。

compile group: "in.test", name: "test", version: "1.0.+"

PS:我读到使用动态版本不利于稳定构建,要了解它的工作原理,我正在尝试一下。

阅读 gradle 文档后,我发现了依赖项缓存。

https://docs.gradle.org/current/userguide/userguide_single.html#sec:controlling_caching

在缓存过期时间之前,它会从缓存中查找动态版本项目的最佳候选项。缓存过期后,它会在存储库中进行搜索。

如果我们告诉 gradle,对于动态版本,请始终查找存储库而不是缓存,问题将得到解决。我用下面的脚本解决了这个问题。

configurations.all {
    resolutionStrategy.cacheDynamicVersionsFor 0, 'seconds'
}

最新更新