在gradle构建脚本中,我有以下代码:
dependencies {
runtime group: 'org.springframework', name: 'spring-core', version: '4.1.1'
}
并且它工作正常,但如果我将其更改为
dependencies {
compile group: 'org.springframework', name: 'spring-core', version: '4.1.1'
}
gradle build
Could not resolve all dependencies for configuration ':compile'.
> Could not find org.springframework:spring-core:4.1.1.
Searched in the following locations:
https://repo1.maven.org/maven2/org/springframework/spring-core/4.1.1/sprin
g-core-4.1.1.pom
https://repo1.maven.org/maven2/org/springframework/spring-core/4.1.1/sprin
g-core-4.1.1.jar
我认为工件在编译和运行时都在同一个地方搜索。它们之间有什么区别?
答案 0 :(得分:3)
Gradle在执行编译之前解析compile
个依赖项,期望源代码直接引用该工件。但是,它直到构建过程的后期才解析runtime
依赖项。 (请参阅@Dónal关于在compile
和runtime
之间进行选择的使用指南的答案)
因此,两种情况之间的差异很可能是您的build
任务需要编译,而不是运行时准备。使用原始配置,任何需要运行时准备的任务都将失败并出现相同的错误。
要修复此特定案例中的失败,建议您将version
值从4.1.1
(不在您引用的Maven存储库中)更改为{{1 (是)。