Spring Boot Web应用程序中的模块很少(数据库,paymet)。编译数据库模块时,我需要执行gradle任务。我以下面的方式尝试了它,但是它给出了错误。
dependencies {
compile project(':pathToDatabaseModule') {
dependsOn('taskName')
}
}
我的任务是复制特定的文件集。
task taskName(type: Copy) {
from "${rootDir}/fromPath"
into "${rootDir}/toPath"
}
出现以下错误,
Gradle DSL method not found: 'dependsOn()'
Possible causes:<ul><li>The project 'intersureplus' may be using a version of the Android Gradle plug-in that does not contain the method (e.g. 'testCompile' was added in 1.1.0).
Upgrade plugin to version 2.3.2 and sync project</li><li>The project 'intersureplus' may be using a version of Gradle that does not contain the method.
Open Gradle wrapper file</li><li>The build file may be missing a Gradle plugin.
Apply Gradle plugin</li>
所有事情都是正确的,当我在上述的 compile 块中添加 dependsOn 时,就会出现错误。我是初学者,所以请帮助我解决此问题。
答案 0 :(得分:0)
dependsOn
方法由Gradle中的Task
类公开,您不能在脚本的任何位置使用该方法,当然不能在dependencies
配置块中使用。如果要在根项目中的任务(例如:build
任务)和子项目:projectpath
中定义的任务(例如:dependenTask
任务)之间创建依赖关系,则您可以在根项目的build.gradle
脚本中编写类似的内容:
build.dependsOn(':projectpath:dependenTask')
等效于:
project.tasks.getByName('build').dependsOn(':projectpath:dependenTask')
编辑,您还可以从另一个方向创建依赖项:从 database 子项目中创建任务取决于根项目中定义的“预处理”任务:
在 /database/build.gradle 脚本中:
tasks.getByName('build').dependsOn(':preProcessTask')