我很困惑gradle build lifecycle
几天。 Refer告诉我任务未在根项目中找到
Gradle构建有三个不同的阶段。
- 初始化
- 配置
- 执行
在第三步创建任务?如果是这样,gradle
如何在项目对象中找到所有tasks
?
这里是一个例子。
rootporject
|----app
|----build.gradle
|----checkstyle.gradle
build.gradle
就像平常一样简单。 checkstyle.gradle
文件有一个任务。这里是它的内容。
apply plugin: 'checkstyle'
task checkstyle(type:Checkstyle) {
description 'Runs Checkstyle inspection against girl sourcesets.'
group = 'Code Quality'
configFile rootProject.file('checkstyle.xml')
ignoreFailures = false
showViolations true
classpath = files()
source 'src/main/java'
}
./gradlew -q tasks
后,没有任务checkstyle
。
但是,如果我删除定义到build.gradle
,我得到它。
有什么不对吗?提前致谢。
编辑
从doc
有一个项目和文件的build.gradle之间有一个一对一的关系。
您的'build.gradle'是否适用于:'checkstyle.gradle''中的任何位置?构建脚本如何知道它? – mkobit
您需要按照@mkobit描述的方式包含您的'checkstyle.gradle'文件。只有'build.gradle'文件会被自动解释。在第二步中创建任务,或者,如果插件在第二步和第三步之间使用'afterEvaluate'处理程序。在*执行阶段*开始之前,任务必须存在,但在*配置阶段*中,您可能需要通过名称而不是实例来识别任务('dependsOn'myTask''而不是'dependsOn myTask')。 –
@mkobit非常感谢,它的工作原理。你可以把你的评论回答? – CoXier