Bal*_*Rog 2 artifactory gradle gradlew
在我们的大多数gradle项目中,我们有以下依赖项:
compile('com.xxx.yyy.zzz:ch-commons:+')
Run Code Online (Sandbox Code Playgroud)
根据我们对文档的理解,这应该ch-commons从我们的maven存储库中检索最新版本.
TL;博士
我们实际的"最新版本"是1.7.0-SNAPSHOT,但gradle 实际上正在检索1.6.0-SNAPSHOT.
整个故事
我们的存储库配置如下:
repositories {
maven { url 'https://local-repo/artifactory/apps-release-local' } // company application release builds
maven { url 'https://local-repo/artifactory/apps-snapshot-local' } // company application snapshot builds
maven { url 'https://local-repo/artifactory/repo1' } // company lazy mirror of central repos
mavenCentral()
jcenter()
}
Run Code Online (Sandbox Code Playgroud)
我已经确认ch-commons除了这些位置之外没有任何工件apps-release-local.在apps-release-local我们有以下内容(sha1,md5和元数据文件省略):
Index of apps-snapshot-local/com/xxx/yyy/zzz/ch-commons
Name Last modified Size
../
1.0.1-SNAPSHOT/ 07-Apr-2016 16:09 -
1.0.2-SNAPSHOT/ 08-Apr-2016 11:03 -
1.0.3-SNAPSHOT/ 08-Apr-2016 14:32 -
1.0.4-SNAPSHOT/ 13-Apr-2016 12:33 -
1.1.0-SNAPSHOT/ 15-Apr-2016 12:37 -
1.2.0-SNAPSHOT/ 17-May-2016 13:16 -
1.2.1-SNAPSHOT/ 18-May-2016 14:28 -
1.3.0-SNAPSHOT/ 14-Jun-2016 15:42 -
1.4.0-SNAPSHOT/ 17-Jun-2016 11:57 -
1.5.0-SNAPSHOT/ 17-Jun-2016 13:42 -
1.5.1-SNAPSHOT/ 21-Jun-2016 16:16 -
1.6.0-SNAPSHOT/ 22-Jun-2016 09:27 -
1.6.2-SNAPSHOT/ 30-Jun-2016 22:02 -
1.6.3-SNAPSHOT/ 01-Jul-2016 10:42 -
1.7.0-SNAPSHOT/ 01-Jul-2016 13:34 -
Run Code Online (Sandbox Code Playgroud)
在1.7.0-SNAPSHOT目录中查看我们有以下内容(相同的东西省略):
Index of apps-snapshot-local/com/xxx/yyy/zzz/ch-commons/1.7.0-SNAPSHOT
Name Last modified Size
../
ch-commons-1.7.0-20160701.183333-1-sources.jar 01-Jul-2016 13:34 14.54 KB
ch-commons-1.7.0-20160701.183333-1.jar 01-Jul-2016 13:34 22.19 KB
ch-commons-1.7.0-20160701.183333-1.pom 01-Jul-2016 13:34 2.21 KB
Run Code Online (Sandbox Code Playgroud)
内容apps-snapshot-local/com/xxx/yyy/zzz/ch-commons/maven-metadata-2.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>com.xxx.yyy.zzz</groupId>
<artifactId>ch-commons</artifactId>
<version>1.6.3-20160701.154200-1</version>
<versioning>
<latest>1.7.0-SNAPSHOT</latest>
<versions>
<version>1.0.1-SNAPSHOT</version>
<version>1.0.2-SNAPSHOT</version>
<version>1.0.3-SNAPSHOT</version>
<version>1.0.4-SNAPSHOT</version>
<version>1.1.0-SNAPSHOT</version>
<version>1.2.0-SNAPSHOT</version>
<version>1.2.1-SNAPSHOT</version>
<version>1.3.0-SNAPSHOT</version>
<version>1.4.0-SNAPSHOT</version>
<version>1.5.0-SNAPSHOT</version>
<version>1.5.1-SNAPSHOT</version>
<version>1.6.0-SNAPSHOT</version>
<version>1.6.2-SNAPSHOT</version>
<version>1.6.3-SNAPSHOT</version>
<version>1.7.0-SNAPSHOT</version>
</versions>
<lastUpdated>20160701183429</lastUpdated>
</versioning>
</metadata>
Run Code Online (Sandbox Code Playgroud)
此外,如果我们更改依赖性声明以引用显式版本:
compile('com.xxx.yyy.zzz:ch-commons:1.7.0-SNAPSHOT')
Run Code Online (Sandbox Code Playgroud)
它然后"正确"工作,检索正确的版本1.7.0-SNAPSHOT.
那么,为什么不是使用+版本通配符检索最新版本的依赖项设置呢?
默认情况下,gradle 缓存 SNAPSHOT依赖项24小时.
您可以使用手动刷新它们
--refresh-dependencies
Run Code Online (Sandbox Code Playgroud)
或者您可以按照指南配置缓存持续时间:https://docs.gradle.org/current/userguide/dependency_management.html#sub: cache_refresh
| 归档时间: |
|
| 查看次数: |
641 次 |
| 最近记录: |