繁体   English   中英

从 Gradle 中的 Maven Repository 获取最新的快照版本

[英]Get latest snapshot version from Maven Repository in Gradle

我有一个项目,它使用 Gradle 将我们的 SNAPSHOT 工件发布到远程 Maven 存储库。

当我发布到 Maven 时,时间戳和内部版本号被附加到 Jar 名称。 我正在尝试从其他项目之一下载最新版本,即 myjar-1.6.0-20170926.190543-10.jar。 除非我从我的 .gradle 中删除它或重新启动我的工作空间,否则我无法下载。

myjar-1.6.0-20170926.162756-7.jar        
myjar-1.6.0-20170926.162756-7.jar.md5    
myjar-1.6.0-20170926.162756-7.jar.sha1   
myjar-1.6.0-20170926.162756-7.pom        
myjar-1.6.0-20170926.162756-7.pom.md5    
myjar-1.6.0-20170926.162756-7.pom.sha1   
myjar-1.6.0-20170926.182639-8.jar        
myjar-1.6.0-20170926.182639-8.jar.md5    
myjar-1.6.0-20170926.182639-8.jar.sha1   
myjar-1.6.0-20170926.182639-8.pom        
myjar-1.6.0-20170926.182639-8.pom.md5    
myjar-1.6.0-20170926.182639-8.pom.sha1   
myjar-1.6.0-20170926.182748-9.jar        
myjar-1.6.0-20170926.182748-9.jar.md5    
myjar-1.6.0-20170926.182748-9.jar.sha1   
myjar-1.6.0-20170926.182748-9.pom        
myjar-1.6.0-20170926.182748-9.pom.md5    
myjar-1.6.0-20170926.182748-9.pom.sha1   
myjar-1.6.0-20170926.190543-10.jar       
myjar-1.6.0-20170926.190543-10.jar.md5   
myjar-1.6.0-20170926.190543-10.jar.sha1  
myjar-1.6.0-20170926.190543-10.pom       
myjar-1.6.0-20170926.190543-10.pom.md5   
myjar-1.6.0-20170926.190543-10.pom.sha1  

依赖项目有以下

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

 compile ( group: "com.test", name:"myjar", version: "1.6.0-SNAPSHOT", changing: true ); 

也试过

compile ( "com.test:myjar:latest.integration); 

但没有任何效果。 让我知道如何解决这个问题?

您可以使用--refresh-dependencies运行本地构建。 请参阅此问题的答案如何强制 gradle 重新下载依赖项? 了解更多信息。

我遇到和你一样的情况。

  • 开发环境:Android Studio 4.0
  • 构建工具:gradle 3.6
  • 电脑:Mac

我在应用程序端,当我使用服务器端的 jar 时,jar 是通过添加 maven repo 并在 build.gradle 中添加项目依赖项来包含的,如下所示:

buildscript {
repositories {
    mavenLocal()
    maven { url 'http://maven.xxx.com/xxx/xxx/‘ }        
 }}
dependencies {
   ...
   implementation ‘project_group_id:artifact_id:latest.integration’
   }

我没有使用./gradlew build --refresh-dependencies来清除缓存,而是直接进入缓存文件夹/Users/your_user_name/.gradle/caches/modules-2/files-2.1并删除本地 jar 以便下载更新一。

但是还是失败了...

最后发现原因很奇怪:我们包含了几个maven repo,一个repo和我们需要的项目是一样的,但是每个版本代码只有一个版本。它在maven repo的前面,我们可以从中下载最新的jar,因此它阻止了最新版本的更新。 我们交换这两个repo的顺序,问题就消失了。

就我而言,这与 maven 配置或缓存无关,这是由于 gradle 中包含的 repo。 更进一步的原因还需要挖掘。

希望可以帮助遇到同样问题的人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM