Как я могу получить плагин скомпилированного скрипта Gradle 5, чтобы он работал, когда он находится в пакете - PullRequest
2 голосов
/ 25 апреля 2019

Я хочу модулировать мои build.gradle.kts файлы с помощью функции предварительно скомпилированных скриптов *1003*, представленной в Gradle 5.3.1.

Она отлично работает, когда у меня есть простой файл hello-world.gradle.ktsв buildSrc/src/main/kotlin напрямую

tasks.register("hello-world") { println("hello world") }

и включите его в раздел плагинов моего основного build.gradle.kts:

plugins {
   `hello-world`
}

Теперь я могу использовать gradle hello-world и увидеть ожидаемый результат.

Но когда я помещаю тот же сценарий в buildSrc/src/main/kotlin/custom/hello-world-custom.gradle.kts (добавляя package custom к сценарию), он терпит неудачу, хотя в документации говорится:

Аналогично, src / main / kotlin/my/java-library-convention.gradle.kts приведет к идентификатору плагина my.java-library-Convention, если в нем есть объявление пакета my.

Main build.gradle.kts:

plugins {
   `custom.hello-world-custom`
}

но вместо этого я получаю сообщение об ошибке:

 Script compilation error:

  Line 3:   `custom.hello-world-custom`
        ^ Unresolved reference: `custom.hello-world-custom`

Есть идеи, как это исправить?

Обновление : чтобы воспроизвести это, я создал маленькое репо с различными задачами "hello world".

1 Ответ

2 голосов
/ 25 апреля 2019

Это было не совсем понятно из документов, но я нашел решение:

Пакет должен быть определен вне черт:

plugins {
 `hello-world`
 custom.`hello-world-custom`
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...