为了账号安全,请及时绑定邮箱和手机立即绑定

自定义 Gradle 插件在多项目构建中仅执行一次

自定义 Gradle 插件在多项目构建中仅执行一次

DIEA 2022-06-08 17:15:58
我用 Java 编写了一个 gradle 插件,我想在多项目 gradle 设置中使用它。插件附带的任务只执行一次,我不明白为什么。项目的结构如下所示:Root project     |- settings.gradle     |- build.gradle     |- project1     |     |- build.gradle     |- project2     |     |- build.gradle     |- project3     |     |- build.gradle     ...根 build.gradle 看起来像这样buildscript {repositories {    jcenter()    maven { url "https://repo.spring.io/plugins-snapshot" }    maven { url "https://repo.spring.io/plugins-release" }    maven{        url = "https://my-personal-nexus.de/content/repositories/release/"    }    ....    dependencies {       ....       classpath "de.mystuff:myCustomPlugin:1.0.0"    }  }}subprojects {   apply plugin: "myCustomPlugin"   ....}插件“myCustomPlugin”提供了一个名为 myTask 的任务。由于插件应用于 build.gradle 的子项目部分,我假设当我调用时:./gradlew myTask该任务将为 project1、project2、project3 执行。实际上,该任务仅在 project1 中执行,而不在 project2 或 project3 中执行。如果我打电话./gradlew -p "project2" myTask该任务在项目2中执行得很好。关于为什么没有为每个子项目执行任务的任何提示?当我打电话 ./gradlew tasks --all结果显示每个子项目的任务。
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

解决方案:

当您在任务中调用静态方法时,似乎 gradle 不喜欢它。在我切换到类初始化之后,它起作用了。

谢谢@M.Ricciuti


查看完整回答
反对 回复 2022-06-08
  • 1 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信