具有自定义gradle插件的Gradle复合构建在IntelliJ中失败:“找不到用于参数的方法api()”

时间:2018-12-30 04:46:30

标签: gradle intellij-idea intellij-plugin

我有一个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:library-a)加载到父项目(:project-1)之前,使得java-library在评估时实际上并未应用于子项目。 / p>

2 个答案:

答案 0 :(得分:0)

感谢示例项目!确实,这是IntelliJ IDEA中的问题,请参见this ticket

答案 1 :(得分:-2)

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