我想使用一個Maven倉庫,並在本地計算機上使用緩存工件來避免下載它們來加速Gradle構建。讓Gradle使用本地Maven倉庫中的工件
不幸的是,我注意到,即使本地存儲庫首先被列出,並且它具有我所需要的依賴關係,如果Internet連接可用,Gradle將從Internet獲取工件,並且只會使用本地存儲庫是到網絡的問題之一。
這裏是再現這個問題的一個具體的小例子:
的build.gradle:
m2copy:
com
m2copy/com:
google
m2copy/com/google:
code
m2copy/com/google/code:
gson
m2copy/com/google/code/gson:
gson
m2copy/com/google/code/gson/gson:
2.4
m2copy/com/google/code/gson/gson/2.4:
gson-2.4.jar
gson-2.4.jar.sha1
_remote.repositories
:
apply plugin: 'java'
repositories {
maven {
name 'cache'
url "/home/vagrant/m2copy"
}
jcenter()
}
dependencies {
compile 'com.google.code.gson:gson:2.4'
}
jar {
manifest {
attributes 'Created-By': 'Ekumen'
}
}
的/家/流浪者/ m2copy內容
並且gradle build的輸出:
[email protected]:~/test_cache$ ./gradlew build
:compileJava
Download https://jcenter.bintray.com/com/google/code/gson/gson/2.4/gson-2.4.pom
Download https://jcenter.bintray.com/org/sonatype/oss/oss-parent/9/oss-parent-9.pom
Download https://jcenter.bintray.com/com/google/code/gson/gson/2.4/gson-2.4.jar
:processResources UP-TO-DATE
:classes
:jar
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build
BUILD SUCCESSFUL
任何想法爲什麼Gradle在這種情況下跳過本地存儲庫,只有在沒有訪問jcenter時才使用它?
嘗試將-i添加到您的構建命令以獲取更多信息。 Gradle會告訴你它試圖訪問哪些存儲庫。 – tomasulo