这是我的基本设置:
// Dependencies
repositories {
maven { url "http://MYREPO.." }
jcenter()
mavenLocal()
}
dependencies {
compile 'org.bytedeco.javacpp-presets:opencv:3.1.0-1.2'
}
根据我对依赖解析如何工作的理解,gradle应该首先尝试在我的repo中寻找依赖,然后在jcentral()然后在mavenLocal中寻找依赖。
相反,我在./gradlew汇编中得到了这个输出:
:compileJava
Download http://MYREPO.../org/bytedeco/javacpp-presets/opencv/3.1.0-1.2/opencv-3.1.0-1.2.jar
:processResources UP-TO-DATE
:classes
:jar UP-TO-DATE
:assemble UP-TO-DATE
BUILD SUCCESSFUL
事实上,当我查看我的存储库中的内容以查看发生了什么时,我发现opencv依赖关系因依赖解析而被推送。
我希望相反,工件可以从jcenter下载,它实际上存在于其中。
我正在使用apache archiva。
为什么会这样? 这种行为是否记录在某处? 如果这是我的存储库设置或gradle脚本的问题,我不会理解。
答案 0 :(得分:2)
如果您的存储库正在镜像中央存储库,那么会发生什么:
这永远不会让Gradle有机会尝试直接联系jcenter:)
答案 1 :(得分:0)
对于Apache Archiva,缓存设置可在"代理连接器"下进行配置。并在此处记录:
http://archiva.apache.org/docs/1.4-M4/adminguide/proxy-connectors.html
您基本上可以选择从镜像仓库缓存工件的频率(或根本不选择),以便在后续请求中使用。