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

多项目分级-为每个子项目运行启动任务

左丘嘉木
2023-03-14

IDE:spring工具套件4
框架:spring boot
版本:v6

我已经创建了一个由3个子项目a、B和C组成的多项目gradle构建。我想在根构建中创建一个自定义任务。gradle要实现以下操作,运行自定义任务将
1)执行子项目a的bootRun任务。
2)然后几秒钟后,执行子项目B和C的bootRun任务

*Bootrun是一个将项目作为spring boot应用程序运行的任务

注意,子项目A是一个服务器,因此它将保持在后台运行,而子项目B和C是项目A(服务器)的客户端。

问题是如何编写这样的自定义任务来实现上面的功能?

共有2个答案

颛孙正谊
2023-03-14

如果您不需要“等待”部分,那么通过创建一个依赖于您想要运行的所有其他任务的任务,这很容易实现。

task startBootStack(type: GradleBuild) {
    tasks = [
      ':A:bootRun',
      ':B:bootRun',
      ':C:bootRun'
    ]
}

使用分级执行--并行startbootstack

孙阳旭
2023-03-14

smac89对答案的注释中,您提到了“但我想实现将并行配置到build.gradle文件中”。在这种情况下,您可以创建

Gradle.properties

文件,并向其中添加以下内容。

org.gradle.parallel=true
 类似资料:
  • 我正在使用Eclipse的STS插件创建gradle多项目。我以为我在读完教程后得到了基本的知识,但我无法再现所显示的行为。添加时 对于父项目的build.gradle,我将假设每个项目执行的任务'hello‘。为子项目实际进行了2次,但结果只是: 我的项目树看起来或多或少是这样的:

  • 我知道我能做到 但这也会得到projA和projB,我只想在c,d,E上运行任务...请让我知道实现这一点的最佳方法。

  • 我面临以下问题。我有一个多模块的Gradle项目。一个模块是我的根项目,第二个模块是集成测试。 为了让我的集成测试运行,复制任务需要首先运行,以便将一些资产移动到项目根目录上的文件夹中。 我已经在我的根项目上定义了这样一个任务,当我试图调用它时,它什么也不做(我尝试了几种不同的调用方式)。 由于失败,我继续在子项目本身上创建了以下任务: 这是我的另一个任务。我的目标是让它将根项目类以及在下生成的j

  • 我有一个非常基本的多项目分级设置,如下所示: 文件包括这两个子项目。根项目不应用java插件,但两个子项目都应用了。使用时,所有东西都按预期生成。 但是,据我所知,由于我没有在根项目中应用插件,因此它不应该有任务。 的输出显示任务。 但的输出只显示列有和。 所以我的问题是--在这个场景中到底执行了什么?gradle只是找到所有子项目中匹配供应模式的每一个任务吗?是否有关于此任务名称解析的特定规则?

  • PROJECT_B中的docker-compose.yml如下所示: 每个项目都可以单独运行,工作良好。但是,如果我们想要更改PROJECT_A和PROJECT_B之间的api,我们需要运行这两个项目,并将它们链接在一起以测试我们的代码。现在我们想写一个开发工具包项目,可以运行这两个项目,并链接他们,如果需要。最好的方法是什么?

  • 我有一个这样的多项目构建 现在,在项目中,我已经为所有子项目声明了一个任务,如下所示: 当我运行时,我得到的输出类似于以下内容(其他内容): 现在,我尝试像这样为简单项目运行该任务 我得到的输出是: 失败:构建失败,但有一个异常。 > 哪里出错了:在项目中找不到任务你好:例子:简单项目。一些候选人是:帮助。 尝试:运行gradle任务以获取可用任务的列表。使用--stack跟踪选项来获取堆栈跟踪。