Gradle - 向classpath添加新配置会引发错误

时间:2017-12-01 15:27:22

标签: gradle plugins configuration classpath

我创建了一个自定义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块 - 不确定这是否重要。

1 个答案:

答案 0 :(得分:1)

嗯...当我写这个问题时,有些事情让我感到震惊的是扩展compile配置添加到编译类路径。这似乎是我添加循环依赖。低,看,当我没有扩展配置时,构建工作了!