我试图了解Gradle构建依赖关系,但在使用Gradle网站上的示例时遇到了麻烦,想知道是否有人可以提供帮助。
在他们网站的Adding dependencies to a task部分中,以下代码将保存在 build.gradle 中:
project('projectA') {
task taskX {
dependsOn ':projectB:taskY'
doLast {
println 'taskX'
}
}
}
project('projectB') {
task taskY {
doLast {
println 'taskY'
}
}
}
他们说gradle -q taskX 的输出为:
> gradle -q taskX
taskY
taskX
但是我得到:
FAILURE: Build failed with an exception.
* Where:
Build file '/tmp/x/build.gradle' line: 3
* What went wrong:
A problem occurred evaluating root project 'x'.
> Project with path ':projectA' could not be found in root project 'x'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
使用
--stacktrace
我得到以下信息:Caused by: org.gradle.api.UnknownProjectException: Project with path ':projectA' could not be found in root project 'x'.
注意:此
build.gradle
文件是/tmp/x
文件夹中的唯一文件。------------------------------------------------------------
Gradle 3.4.1
------------------------------------------------------------
Build time: 2012-12-21 00:00:00 UTC
Revision: none
Groovy: 2.4.15
Ant: Apache Ant(TM) version 1.10.3 compiled on July 19 2018
JVM: 1.8.0_191 (Oracle Corporation 25.191-b12)
OS: Linux 4.15.0-43-generic amd64
最佳答案
该文档中的chatper解释了如何在同一构建的不同(子)项目中的任务之间创建依赖关系(示例中项目X
中的任务projectA
取决于项目Y
中的任务projectB
)。
因此,在尝试执行给定示例之前,您需要设置一个多项目构建:请参阅多项目构建的基础知识here
对于您的情况:您需要:
1)创建两个子项目目录“projectA”和“projectB”
2)在根项目目录中创建所需的settings.gradle
文件,以声明/包括两个子项目
include ("projectA" , "projectB")
关于java - 了解Gradle项目的依赖性,Gradle站点示例似乎不完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54198685/