Как добавить зависимость к конфигурации в плагине Gradle - PullRequest
0 голосов
/ 01 апреля 2019

Я разрабатываю пользовательский плагин 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 из пользовательского плагина?Работа с Gradle 5.3.1 в Kotlin DSL.

1 Ответ

0 голосов
/ 02 апреля 2019

Зависимости по умолчанию используются только в том случае, если нет другой зависимости, добавленной в конфигурацию.

Поскольку это не похоже на ваш вариант использования, вы просто должны добавить зависимость обычным способом.

implConfig.defaultDependencies {
  add(project.dependencies.create("com:my-app:${extension.version.get()}"))
}

должно стать

implConfig.dependencies.add(project.dependencies.create("com:my-app:${extension.version.get()}"))
...