我有一個build,我正在從Maven移動到Gradle。到目前爲止,事情並沒有太糟糕,說實話我很可能是Gradle。Gradle會緩存一個8MB的jar文件,但不是32MB的jar文件
這是我遇到的問題,文檔沒有太大的幫助。我有兩個我的代碼依賴的內部罐子。我們稱之爲「核心」和其他「測試」。他們來自另一個內部團隊,Maven倉庫是我們內部的。它們是超級罐子:'核心'是8MB,'測試'是32MB。我所依賴的所有外部罐子都不是問題。在你問之前,我的倉庫和依賴關係定義沒問題,gradle不會抱怨,並且可以找到一切正常。在這裏,他們是後人:
repositories {
mavenCentral()
maven {
url { 'http://internal.host.com/path/to/repo/root/' }
}
}
dependencies {
compile group: 'io.dropwizard', name: 'dropwizard.core', version: dropwizardVersion
// And so on
// This is the 8MB jar that I need at compile and runtime
compile group: 'corp.group.id', name: 'core', version: currentVersion
// This is the 32MB jar that I need for my tests, and which Gradle insists on
// caching the pom.xml ONLY, and downloading the jar on demand.
testCompile group: 'corp.group.id', name: 'tests', version: currentVersion
}
在這一點上,我只是試圖讓「gradlew Eclipse的生成,我可以使用這個代碼庫工作,並按摩到編制有效的classpath文件。這是踢球者。生成的.classpath文件沒有任何對tests-version.jar文件的引用。 Gradle已經很高興地下載了POM並緩存了它,但它每次都會重新下載這個jar,並且每次都感覺它需要它。 core-version.jar文件只下載一次(如預期的那樣)並緩存,並顯示在生成的.classpath文件中。
我似乎無法找到任何能夠告訴Gradle的文檔「只需將緩衝罐保存在緩存中,不管怎樣,請不要在乎,我不在乎這該死的東西有多大,它更好每次都要下載它。「
您可以在使用maven時獲得緩存的jar嗎?如果是這樣,你可以在倉庫定義 – Asaf
中使用'mavenLocal()'也許問題在於pom.xml和gradle使用它的方式,以及maven如何使用它? – fge
Jar的大小是無關緊要的。您的構建或環境可能會有其他問題觸發此(非常罕見)行爲。你有沒有嘗試過最新的Gradle版本? 'currentVersion'是一個快照版本嗎?你正在使用哪個版本庫管理器?你是否覈實過檔案館發佈的沙牌是否正確? –