我有像这样的项目设置
+ rootProject
+ module1
+ src
build.gradle
+ module2
+ src
build.gradle
+ src
build.gradle
settings.gradle
rootProject/build.gradle
evaluationDependsOn(':module1')
apply plugin: 'java'
dependencies {
compile project(':module1')
compile project(':module2')
}
task myTask (type: JavaExec) {
main = 'org.gradle.example.Test.Main'
classpath runtimeClasspath
}
module1/build.gradle
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile 'commons-codec:commons-codec:1.9'
}
module2/build.gradle
apply plugin: 'java'
依赖关系图
root --> module1 --> commons-codec
--> module2
gradle在构建时使用根文件夹中的命令gradle build
Could not resolve all dependencies for configuration ':compile'.
> Could not find commons-codec:commons-codec:1.9. Required by:
:rootProject:unspecified > rootProject:codec:unspecified
如果我在rootProject的构建文件中添加dependencies
块,它就会正常构建。
如您所见,我已经确定了module1构建文件中的依赖项。为什么gradle继续说它无法解决?
我是否需要将子模块的所有依赖项放在根构建文件中?
答案 0 :(得分:1)
首先,我看到您在多模块项目中缺少settings.gradle
文件。您需要在rootProject/build.gradle
所在的级别创建它。
内容应为
include 'module1', 'module2'
<强>更新强>
好的,添加以下代码的根build.gradle
:
allprojects {
repositories {
mavenCentral()
}
}
已从module1/build.gradle
repositories
部分移除。现在它有效。获取并显示依赖关系。目前不知道解释是什么。