Vic*_*cky 7 java gradle gradle-dependencies
我有三个gradle项目。说ProjectA,ProjectB和ProjectC。
ProjectC依赖于ProjectA和ProjectB。虽然ProjectB依赖于ProjectA.
所以ProjectC的build.gradle有下面几行:
dependencies {
implementation project(':ProjectA')
implementation project(':ProjectB')
}
Run Code Online (Sandbox Code Playgroud)
并且ProjectB'sbuild.gradle具有以下内容:
dependencies {
implementation project(':ProjectA')
}
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么我需要显式implementation声明ProjectAinProjectC的构建文件?
因为,我添加ProjectB, 不ProjectA应该被自动包含,因为ProjectB它依赖于ProjectA?
换句话说,为什么以下不适用于ProjectC?
dependencies {
implementation project(':ProjectB')
}
Run Code Online (Sandbox Code Playgroud)
我是新手gradle,因此试图了解 Project 工作之间的依赖关系管理。
编辑:
所以我想把ProjectBbuild.gradle 改成下面的:
dependencies {
api project(':ProjectA')
}
Run Code Online (Sandbox Code Playgroud)
这样我就可以将ProjectC的 build.gradle简化为:
dependencies {
implementation project(':ProjectB')
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
A problem occurred evaluating project ':ProjectB'.
> Could not find method api() for arguments [:ProjectA] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
添加
plugins {
id 'java-library'
}
Run Code Online (Sandbox Code Playgroud)
添加到父项目build.gradle文件,这将为api尝试使用它的项目启用修饰符。
请参阅: https: //docs.gradle.org/current/userguide/java_library_plugin.html
| 归档时间: |
|
| 查看次数: |
2392 次 |
| 最近记录: |