gradle - 将自定义任务集成到多项目构建的生命周期中

标签 gradle build.gradle gradle-plugin

我有一个包含两个 java 库模块“A”和“B”的多项目构建。 “B”依赖于模块“A”:

dependencies {
  api ':A'
}

现在我想编写一个提供自定义任务“myGenerator”的自定义插件。 “myGenerator”必须在编译模块“B”中的任何类(任务 compileJava)之前运行,但在组装模块“A”之后(“myGenerator”将实现需要模块“A”的一些资源的代码生成器)。

我应该如何配置任务'myGenerator'?如果我说
compileJava.dependsOn myGenerator

并运行 gradle assemble在模块“B”中,“myGenerator”仍会在组装模块“A”之前执行。

不知何故,我必须配置“myGenerator”以依赖于模块“A”的配置“api”。我怎样才能做到这一点?

最佳答案

你只从你的句子中表达了一种依赖:

'myGenerator' must run before compiling any classes (task compileJava) in module 'B' but after assembling module 'A'



你需要表达另一个:
myGenerator.dependsOn project(':A').jar // or the relevant assembly task of your build

关于gradle - 将自定义任务集成到多项目构建的生命周期中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60265662/

相关文章:

intellij-idea - 如何让 IntelliJ 将 Gradle 源与 build.gradle 关联?

安卓工作室 : Difference in size between Build APK vs Run APK

android - 找不到与 com.android.support :appcompat-v7:29. + 匹配的任何版本

gradle - jPOS Gradle构建文件

gradle - Gradle启动脚本环境

android - Gradle构建任务表示Gradle Wrapper版本低于Gradle属性中定义的版本

android-studio - 如何使用 Gradle Experimental Plugin 设置 C/C++ 包含路径?

gradle - Android Studio向项目添加外部JAR

gradle - 使用分发插件构建项目后运行 gradle 任务

spring-boot - 如何在多模块项目中使用 Spring BOOT 和 Gradle 实现 AspectJ 编译时编织(编织所有模块)?