2016-07-11 176 views
0

我的build.gradle引用了本地maven pom。我已經啓用mavenLocal()存儲庫,並添加了jar作爲編譯時間依賴項(例如,my-local-lib,如下所示)。具有當地pom依賴關係的Gradle拾取錯誤版本

repositories { 
    mavenCentral() 
    mavenLocal() 
} 

dependencies { 
    compile (group: 'com.company', name: 'my-local-lib', version: '1.0-SNAPSHOT') 
} 

Gradle確實會挑選它並將其作爲依賴添加。但是,My-local-lib本身依賴於其pom.xml中指定的另一個庫,但是gradle無法選擇在pom.xml中指定的正確版本,而是選擇了更早的版本。這個特定的jar依賴不依賴任何其他庫。

這是一個已知的問題?這可能是由於my-local-lib是SNAPSHOT版本嗎?有沒有一種方法可以強制gradle尊重庫中指定的版本?

回答

1

嘗試添加以下代碼塊:

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

build.gradle腳本。

+0

添加了代碼,沒有遺憾。我真的無法理解它在哪裏拾取特定的錯誤版本......我甚至嘗試刪除Maven和Gradle中的所有本地緩存​​以及重建。 – spyk

+0

也許你在錯誤的地方刪除?嘗試去除maven和gradle緩存。然後安裝lib。然後運行構建。再次安裝lib。再次運行構建以檢查版本。 – Opal

+0

再次嘗試但沒有遺憾。唯一有效的是如果我明確地在我的build.gradle文件中添加依賴項。 – spyk