【发布时间】:2017-12-01 15:27:21
【问题描述】:
我创建了一个自定义 Gradle 插件,它为我想要单独处理的一些依赖项创建了一个新配置。由于这些曾经位于compile 配置中,因此我已将新配置添加到类路径(来自Java 插件),如下所示:
project.sourceSets.all { sourceSet ->
sourceSet.compileClasspath += myConfiguration
}
我的配置扩展compile 配置。我的理由是,如果有任何其他 3rd 方插件对 compile 配置做了“某事”,那么它也会影响我的新配置,因为它也是 compile 的一个实例。
似乎稍后在另一个插件Spring PropDeps Plugin 上也修改了类路径并且构建失败:
无法应用插件 [class 'org.springframework.build.gradle.propdep.PropDepsPlugin'] 解决后无法更改配置“:my-project:compile”的依赖关系。
查看该插件的源代码,他们正在执行与我在自定义插件中创建配置相同的步骤,即创建配置并在应用插件后立即将其添加到类路径中,请参阅@987654322 @。
如果只有 one 插件可以将新配置添加到类路径,这似乎很疯狂。我在这里做错了什么?
请注意,我的自定义插件应用在 allprojects 块中,而 Spring 插件应用在 subprojects 块中 - 不确定这是否重要。
【问题讨论】:
标签: gradle plugins configuration classpath