我正在开发 Gradle 自定义插件。我想向现有配置添加依赖项。我正在尝试这样做:
open class MyApplicationExtension @Inject constructor(objects: ObjectFactory) {
val version: Property<String> = objects.property(String::class)
}
class MyApplicationPlugin : Plugin<Project> {
override fun apply(project: Project) {
project.plugins.apply(ApplicationPlugin::class)
val extension = project.extensions.create<MyApplicationExtension>("myApp")
val implConfig = project.configurations["implementation"]
implConfig.defaultDependencies {
add(project.dependencies.create("com:my-app:${extension.version.get()}"))
}
}
}
但是当我尝试在 gradle 项目中使用应用程序时,不会添加添加的依赖项。我正在尝试像这样使用它:
apply<MyApplicationPlugin>()
the<MyApplicationExtension>().version.set("0.1.0")
dependencies {
// This overrides the default dependencies
implementation("com:another:0.2.0")
}
当我调用dependencies
任务时,我的依赖项不会显示在那里。那么如何从自定义插件将可配置的依赖项添加到implementation
配置中呢?在 Kotlin DSL 中使用 Gradle 5.3.1 运行。
仅当配置中未添加其他依赖项时,才会使用默认依赖项。
由于这似乎不是您的用例,因此您应该简单地以正常方式添加依赖项。
implConfig.defaultDependencies {
add(project.dependencies.create("com:my-app:${extension.version.get()}"))
}
需要成为
implConfig.dependencies.add(project.dependencies.create("com:my-app:${extension.version.get()}"))