gpt4 book ai didi

gradle - Gradle插件:如果任务A或任务B:任务C应该运行:

转载 作者:行者123 更新时间:2023-12-03 03:48:39 26 4
gpt4 key购买 nike

我正在创建“自定义插件”任务,并遇到需要帮助的情况。
我创建了3个任务。 Gradle中的任务A,B,C。
仅在A或B成功的情况下才应执行任务C。
请注意,A和B是2个单独的任务,并且不相关。

class A extends DefaultTask { }

class B extends DefaultTask { }

class C extends DefaultTask { }

如果我尝试 C.dependsOn(A); C.dependsOn(B);,那么我认为C同时依赖于A B(而不是A B)。有什么方法可以在此处指定A B条件。

最佳答案

Gradle提供了四种方法(和相关容器)来处理任务依赖性和排序:

样式:t1.<method>(t2)

  • dependsOn-如果在执行 t2之前先执行和,则确保在上执行t1
  • finalizedBy-如果在执行 t2之后执行,则确保t2中执行。
  • mustRunAfter-确保如果同时执行 t2t1(由其他触发器引起),则在 t1之后执行t2
  • shouldRunAfter-与mustRunAfter基本相同,但在特殊情况下可以忽略(请检查the docs)。

  • 您的要求很特殊,不会通过上面的简单方法解决。如果我对您的问题理解正确,那么您要确保任务C在任务A和B之后执行,但前提是无论如何都将执行该任务(并且不会自动触发它)。您可以将mustRunAfter用作需求的第一部分。但是,您还想确保任务A 任务B之前已执行。我建议使用onlyIf方法跳过任务C的任务执行(如果之前没有执行过A或B)。例:
    task A { }
    task B { }

    task C {
    mustRunAfter A, B
    onlyIf { A.state.executed || B.state.executed }
    }

    关于gradle - Gradle插件:如果任务A或任务B:任务C应该运行:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45824355/

    26 4 0
    文章推荐: javascript - 将短月份的非标准日期转换为时间戳
    文章推荐: sql-server - 展平/合并重叠的时间间隔
    文章推荐: javascript - 使用 JavaScript 将多个值附加到