当前位置: 首页 > 知识库问答 >
问题:

依赖于bootRun的Gradle任务

柴英博
2023-03-14

我有两个互斥的任务,它们都应该在完成后启动bootRun

我提到它们是互斥的,因为我不想让< code>bootRun依赖于它们中的任何一个。相反,我在寻找一个类似如下的流程:

task A() {
   // setup for task A
   // runs bootRun on completion
}

task B() {
   // Does some things
   // runs bootRun on completion
}

我尝试了以下方法

task C() {
 // Performs the task A setup
}

task A() {
 dependsOn 'C'
 dependsOn 'bootRun'
}

因此,gradle A将启动设置(任务C)和bootRun(与任务B的类似设置)。这会导致在项目'中找不到路径'bootRun'的任务:x'

我还尝试将A/B任务声明为:< code > task A(type:org . spring framework . boot . gradle . run . bootruntask),但这导致了错误< code >无法获取项目的未知属性' org ':org . gradle . API . project类型的x '

如何在 gradle 中编写任务,以便在完成后启动 bootRun?

编辑:

这是一个多模块设置,看起来像:

settings.gradle
build.gradle
Application module
   build.gradle (spring boot plugin lives here)
   main() lives here
Service module
   build.gradle (this is where tasks A and B live)

spring boot插件通过以下方式在应用程序模块的build.gradle中提供:

plugins {
   id 'org.springframework.boot' version '2.0.0.RELEASE'
}

我也可以将这个插件添加到服务模块中,尽管它不知道主类是什么。

共有1个答案

林德惠
2023-03-14

你需要finalizedBy(https://docs.gradle.org/current/userguide/more_about_tasks.html#sec:finalizer_tasks)

A.finalizedBy bootRun
B.finalizedBy bootRun
 类似资料:
  • 我有一些与jdbc相关的通用代码,我想单独打包到一个可运行的jar中,其中已经包含了所需的jdbc库,因此每个数据库类型都有一个单独的可运行jar。源代码将保持不变,但打包的jdbc jar将不同。 例如jdbc app postgres。jar将只包含postgres jdbc jar,而jdbc应用程序mysql。jar将包含mysql jdbc jar。 是否可以使用gradle对任务或任何

  • 问题内容: 可以运行以了解模块任务的依赖性。有没有办法找到 buildscript依赖 的 传递依赖 ? 示例: 直接取决于: 可以在MVNRepository上看到。但是,这些工件有其自己的依赖性。有没有找到方法而无需手动遍历整个依赖树的方法? 为了澄清起见,我正在谈论的类路径由以下方式定义: 问题答案: 您可以使用以下命令: Udacity提供了很棒的Android Gradle 教程,但是您

  • 根据我的理解,clean现在将调用clearVersionProperties,war将调用WriteVersionProperties。 但当我执行分级清洁时,Reactor计划看起来是这样的: 为什么要执行clearVersionProperties和writeVersionProperties任务,因为它们绑定到某些构建阶段?例如,不执行任务infoEnv,而是执行任务writeVersio

  • 嗨,如果我用任务列出所有任务--我看到所有导入的ant任务,但是当我试图创建依赖于ant任务的任务时,我得到的是“Could not determine the dependencies of task':testgradle'”。 出现问题的行:-它显然看不到ant init任务。 我做错了什么? 所有编译-编译主源树java文件 byWorld5 copyTestConfiguration-复

  • 因此,自从添加新的Room android架构库以来,这种情况已经开始发生。我在AppDatabase_Impl没有过期时遇到问题,我通过在注释中添加kapt来修复它: < li>Android Room持久性库和Kotlin < li >在Kotlin中实现房间持久性库 < in Kotlin中的房间持久性库实现(Gradle错误) 我怀疑其他错误是由于AS、Kotlin和Java 8造成的,所

  • 我对Gradle完全陌生。首先,我尝试为简单的控制台Java应用程序创建一个构建脚本,而不使用Java插件。maven repository中的代码中只有两个依赖项。因此,我的构建包含一个任务,它扩展了JavaCompile,我在其中指定了类路径、目标等 我的项目不应用java插件,因此我需要自己创建依赖项配置,如下所示: 然后我可以将依赖项绑定到此配置: 据我所知,在那之后我必须将那些配置与我的