gradle - 使用dependsOn从另一个gradle文件调用任务时出错
问题描述
我正在使用一个 build.gradle 文件,该文件有多种方法来指定任务设置的执行。为了从另一个 gradle 文件 - runtests.gradle 调用任务,我创建了一个任务 - testTask并使用dependsOn添加了任务依赖项,但是这个实现似乎不起作用并给出了一个错误,例如: 在 root 上找不到属性 'testTask'项目'GradleFile
我的构建文件如下所示:
构建.gradle
task setup(dependsOn: testTask) <<
{
println "In main execution"
}
// new task
task testTask(type: GradleBuild) {
if (getEnvironmentVariable('RUN_TEST').equalsIgnoreCase("true")) {
buildFile = "../Behave/runtests.gradle"
tasks = ['mainTask']
}
else {
println "Exiting runTests Task"
}
}
setup.doFirst {
println "In first execution"
}
setup.doLast {
println "In last execution"
}
D:\>gradle -q GradleFile/build.gradle setup
我不希望对现有任务进行太多更改,那么我应该尝试其他解决方法吗?我浏览了许多链接,但找不到适合这种情况的任何东西。请寻找建议。
解决方案
如果在dependsOn
. 该任务setup
取决于任务(实例)testTask
,该任务(实例)在编译构建脚本时尚不存在。解决此问题的最常见选项是:
setup
在下面定义任务testTask
:task testTask(type: GradleBuild) { } task setup(dependsOn: testTask) { }
使用任务的相对路径,即任务的名称,在
dependsOn
task setup(dependsOn: 'testTask') { } task testTask(type: GradleBuild) { }
请在 的 Javadoc 中找到更多详细信息Task
。
推荐阅读
- java - 我不知道如何将 myAge 引入为不是整数而不显示在输出中
- xml - 无法打印 xslt 转换参数(分隔符和换行符)
- javascript - 如何使用跨度中的值填充隐藏的文本字段以访问这些值?
- sorting - Google 表格 - 自动对查询旁边的列进行排序,以便整个范围实时重新排序
- android - 使用 volley at max qualtiy kotlin 上传捕获的图像
- javascript - 如何在 Rails 6 和 webpacker 中使用 morris.js?
- java - HTTP Webserver 忽略 POST 请求的最后一行
- r - 在 R 的多个数据框中创建一个变量
- python - 对于每个类别,如何找到与另一列的最小值对应的列的值?
- javascript - React js“TypeError:无法读取null的属性'样式'”和许多javascript错误