我创建了一个自定义Gradle插件,它为我想要单独处理的一些依赖项创建一个新配置。由于这些曾经是compile
配置,我已经将新配置添加到类路径(来自Java插件),如下所示:
project.sourceSets.all { sourceSet ->
sourceSet.compileClasspath += myConfiguration
}
我的配置扩展了 compile
配置。我的理由是,如果有任何其他第三方插件做了什么""对于compile
配置,它也会影响我的新配置,因为它也是compile
的实例。
似乎稍后在另一个插件上,Spring PropDeps Plugin也修改了类路径,并且构建失败了:
无法应用插件[class' org.springframework.build.gradle.propdep.PropDepsPlugin'] 无法更改配置的依赖关系':my-project:compile'在它解决之后。
查看该插件的源代码,他们执行与我在自定义插件中创建配置相同的步骤,即创建配置并在应用插件后立即将其添加到类路径中,请参阅{{ 3}}
如果只有一个插件可以向类路径添加新配置,那似乎很疯狂。我在这里做错了什么?
请注意,我的自定义插件应用于allprojects
块,而Spring插件应用于subprojects
块 - 不确定这是否重要。
答案 0 :(得分:1)
嗯...当我写这个问题时,有些事情让我感到震惊的是扩展compile
配置和添加到编译类路径。这似乎是我添加循环依赖。低,看,当我没有扩展配置时,构建工作了!