簡體   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