2

我有一个项目,它使用 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); 

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

4

2 回答 2

0

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

于 2017-09-27T11:07:21.647 回答
0

我遇到和你一样的情况。

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

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

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以下载更新的jar。

但是还是失败了……

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

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

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

于 2020-09-01T12:28:49.223 回答