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

分级多项目任务执行行为

终育
2023-03-14

我正在使用Eclipse的STS插件创建gradle多项目。我以为我在读完教程后得到了基本的知识,但我无法再现所显示的行为。添加时

allprojects {
    task hello << {task -> println "I'm $task.project.name" }
}
subprojects {
    hello << {println "- I GradleMaster"}
}

对于父项目的build.gradle,我将假设每个项目执行的任务'hello‘。为子项目实际进行了2次,但结果只是:

[sts] -----------------------------------------------------
[sts] Starting Gradle build for the following tasks: 
[sts]      :hello
[sts] -----------------------------------------------------
:hello
I'm GradleMaster

BUILD SUCCESSFUL

我的项目树看起来或多或少是这样的:

Application/
    GradleMaster/
        build.gradle
        settings.gradle
    EAR/
        build.gradle
    EJB/
        build.gradle
    AppClient/
        build.gradle
include ':EAR', ':EJB', ':AppClient' 

共有1个答案

东和怡
2023-03-14

在写这个问题的时候,我没有想到这可能是Eclipse STS插件的问题,而不是Gradle本身的问题。事实上,我甚至没有提到我将Gradle与Eclipse一起使用,这使得这个问题几乎无法回答。

结果是STS插件调用任务的方式。有任务和任务选择器。调用任务只在项目中执行任务,而调用任务选择器则执行多生成项目中同名的所有任务。

st_oehme在Gradle论坛的帖子带我走上了正轨。

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

  • IDE:spring工具套件4 框架:spring boot 版本:v6 我已经创建了一个由3个子项目a、B和C组成的多项目gradle构建。我想在根构建中创建一个自定义任务。gradle要实现以下操作,运行自定义任务将 1)执行子项目a的bootRun任务。 2)然后几秒钟后,执行子项目B和C的bootRun任务 *Bootrun是一个将项目作为spring boot应用程序运行的任务 注意,子

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

  • 我正在使用以下项目结构Project ---子项目1 ---子项目2 ---子项目3 |build.gradle |设置。格拉德尔 子项目2取决于子项目1 子项目3取决于子项目2 对于所有子项目,我需要有任务“构建”,这将是每个项目的自定义任务。但在“构建”之前必须执行一些初始化任务(对于所有子项目都相同)。问题是,这个初始化任务必须在构建期间执行一次,而且只能执行一次,无论我在构建什么-根项目或

  • yield 指令可以很简单的将异步控制流以同步的写法表现出来,但与此同时我们将也会需要同时执行多个任务,我们不能直接这样写: // 错误写法,effects 将按照顺序执行 const users = yield call(fetch, '/users'), repos = yield call(fetch, '/repos') 由于第二个 effect 将会在第一个 call 执行完

  • https://docs.gradle.org/current/userguide/custom_tasks.html 如何使此任务在执行阶段运行?正在传递一个空闭包 唯一的解决办法? 但是hello任务似乎是在构建的配置阶段调用的。