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

在子项目中运行gradle任务

咸浩初
2023-03-14

我有一个这样的多项目构建

main
|_build.gradle
|_settings.gradle
|_examples
|_|_build.gradle
|_|_simple-project
|_|_|_build.gradle
rootProject.name = 'main'
include 'examples'
include 'examples:simple-project'

现在,在示例项目build.gradle中,我已经为所有子项目声明了一个任务,如下所示:

subprojects {
    task hello(group: 'example') {
        doLast {
            println "${it.project.name}: I am part of example"
        }
    }
}

当我运行gradle任务--all时,我得到的输出类似于以下内容(其他内容):

Example tasks
-------------
examples:simple-project:hello

现在,我尝试像这样为简单项目运行该任务

gradle -p examples/simple-project hello

我得到的输出是:

失败:构建失败,但有一个异常。

>

  • 哪里出错了:在项目中找不到任务你好:例子:简单项目。一些候选人是:帮助。

    尝试:运行gradle任务以获取可用任务的列表。使用--stack跟踪选项来获取堆栈跟踪。使用--info或--debug选项来获取更多日志输出。使用--scan来获取完整的见解。

    在https://help.gradle.org获得更多帮助

    建筑在0秒内失败

    我做错了什么?在子项目中运行任务的正确方法是什么?

    如果我运行这个

    gradle -p examples hello
    

    然后这也运行子项目任务(Hello

    简单-方面-项目:我是一个例子

    我不想这样。我希望能够为我想要的子项目运行任务,而不是一次全部运行。

  • 共有1个答案

    范鸿畅
    2023-03-14

    一个简单的gradle:examples:simple project:hello

    我认为设置-p示例/Simple-project将范围缩小到Simple-project项目,并取消了位于示例项目中的Hello任务创建。

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

    • 我有以下多模块项目结构。 当我为/builder子项目运行任务时,我希望所有子项目都会执行任务(对于

    • 在我的多项目中,我正在根项目上运行测试任务,并期望它将在子项目上运行测试任务并生成一个测试报告。我观察到的是,它从来没有在子项目上运行测试任务。我的期望是不正确的吗?“我需要在我的gradle脚本中进行任何特殊配置吗? 请注意,我的根项目中没有测试。

    • 我试图让Jenkins在我的项目上运行。事实上,有一个父build.gradle子项目似乎是个问题。 当运行时,我得到: 12: 14:17坑 12: 14:17坑 12: 14:17坑 线程“main”组织中出现异常。最可怜的。util。PitError:覆盖率生成仆从异常退出。请检查类路径。 我尝试只为子项目配置pitest,正如一些帖子中所建议的那样,但没有任何区别 如果我尝试在子项目上运行

    • 我的WAR文件应该包含来自组件的Java源文件。在我的根项目构建中。gradle我正在以编程方式执行子项目中的任务: 在子项目中,我有一个任务: 控制台输出: ,这意味着collectFilesFromCopyTask()将执行4次。从WAR任务开始,只能执行一次。

    • 我已经设置了一个Gradle任务来自动生成Gradle构建中的一个子项目,另一个子项目依赖于该子项目(这样做的原因:涉及Apache Cordova的故事很长!)。因此,根构建。gradle包含此自动生成任务,该任务创建“CordovaLib”子项目。构建。另一个子项目(非自动生成)中的gradle依赖于CordovaLib: 有没有办法在评估未生成的子项目的build.gradle之前执行自动生