使用自定义 gradle 插件的 Gradle 复合构建在 IntelliJ 中失败:"Could not find method api() for arguments"



我有一个Gradle复合构建项目,其中包含一个自定义的Gradle插件。使用Gradle CLI时,此项目构建良好,但IntelliJ失败。

我在resolutionStrategy块中尝试了一些不同的插件版本:org.test:test-plugin:0.0.1test-plugin:test-plugin.gradle.plugin:0.0.1,如下所述:https://docs.gradle.org/current/userguide/plugins.html#sec:plugin_markers-这两项工作都来自CLI;更改为无效值("blah:blah")会导致失败。

我制作了一个示例Github项目,其中包含要复制的代码,如下所示:https://github.com/mwmitchell/intellij-gradle-plugin-composite-build-bug以及复制说明和解决方法。解决方法对我来说并不可行,因为它需要重复配置代码(依赖项、插件等),而且我有很多项目需要相同/通用的配置。

我希望IntelliJ能够像CLI一样成功地加载项目。IntelliJ似乎是在父项目(:project-1)之前加载子项目(:project-1:library-a),因此在评估子项目时,java-library实际上并没有应用于该子项目。

感谢您的示例项目!事实上,这是IntelliJ IDEA中的一个问题,请参阅此票证。

Gradle项目只能有一个settings.gradle。您可以将include 'project-1:library-a'的子项目"library-a"包含在主settings.gradle中。

最新更新