我的 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>
所有的事情都是正确的,当我添加 时出现错误依赖 里面 编译像上面那样阻塞。我是 gradle 的初学者,所以请帮我解决这个问题。
最佳答案
dependsOn
方法由 Task
公开Gradle 中的类,你不能在脚本的任何地方使用这个方法,当然也不能在 dependencies
中使用。配置 block 。如果要在根项目中的任务(例如:build
任务)和子项目中定义的任务之间创建依赖关系 :projectpath
(例如:dependenTask
任务),那么您可以在根项目的 build.gradle
中编写类似的内容脚本:
build.dependsOn(':projectpath:dependenTask')
这相当于:
project.tasks.getByName('build').dependsOn(':projectpath:dependenTask')
编辑 您还可以在另一个方向创建依赖项:使数据库子项目中的任务依赖于根项目中定义的“预处理”任务:
在 /database/build.gradle 脚本:
tasks.getByName('build').dependsOn(':preProcessTask')
关于spring-boot - 在 Spring Boot 中编译项目时执行 Gradle 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52702366/