【发布时间】:2017-02-10 22:23:27
【问题描述】:
关于 Gradle(3.3 版)如何解决多项目设置(带有 java 子项目)中的任务依赖关系的一个小问题。我对 gradle 很陌生,所以也许这是一个愚蠢的问题......
我想实现一个在编译前执行的任务,一个在编译后执行的任务。
使用 defaultTasks 它可以按预期工作。但是当使用 dependsOn 定义任务时,它不会。
我的根build.gradle 文件如下所示:
defaultTasks 'a', 'classes', 'b'
task a {
doLast {
println 'before compile'
}
}
task b {
doLast {
println 'after compile'
}
}
task doIt(dependsOn: [a, 'classes', b]) {
doLast {
println('done!')
}
}
allprojects {
group = 'foo'
repositories {
mavenCentral()
maven {
url 'https://maven.atlassian.com/3rdparty/'
}
}
}
subprojects {
ext {
springVersion = '4.3.5.RELEASE'
}
apply plugin: 'java'
dependencies {
compile fileTree(dir: 'lib', include: '*.jar')
testCompile group: 'junit', name: 'junit', version: '4.12'
}
}
当我执行gradle 时,默认任务按预期执行:我得到“编译前”,然后编译所有子项目,然后是“编译后”。
当我执行gradle doIt 时,我收到以下错误消息
Task with path 'classes' not found in root project 'teambits-core'.
知道为什么会这样吗?
【问题讨论】:
标签: gradle