在Spring Boot中编译项目时执行Gradle任务

时间:2018-10-08 12:30:37

标签: spring-boot gradle

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 时,就会出现错误。我是初学者,所以请帮助我解决此问题。

1 个答案:

答案 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')