Gradle не может найти плагин, объявленный в buildscript - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь выделить общие задачи Gradle в файл многократного использования. Вот выдержка из файла build- root .gradle:

buildscript {
    // Repository declaration
    ext {
        isSnapshot = version.endsWith("-SNAPSHOT")
        repos = {
            def mavenRepo = { repoName, repoUrl ->
                maven {
                    credentials {
                        username System.env.<some env var>
                        password System.env.<some env var>
                    }
                    name repoName
                    url repoUrl
                }
            }
            mavenLocal()
            mavenRepo('repo1', 'https://repo1.url')
            mavenRepo('repo2', 'https://repo2.url')
            mavenRepo('repo3', 'https://repo3.url')
        }
    }

    // Versions and libraries declaration
    ext {
        versions = [
                ... some stuff
                // Gradle
                gradleRelease           : '2.8.1',
                ... more stuff
        ]
        libs = [
                ... some stuff
                // Gradle
                gradleRelease           : "net.researchgate:gradle-release:$versions.gradleRelease",
                ... more stuff
        ]
    }

    repositories repos
    dependencies {
        classpath libs.gradleRelease
    }
    apply plugin: 'net.researchgate.release'
}
... more common stuff

Идея состоит в том, чтобы подпроекты применяли этот файл и получали из него все вкусности.

На Строка «Применить плагин» Я получаю следующую ошибку -> Плагин с идентификатором 'net .researchgate.release' не найден.

Я напечатал строку libs.gradleRelease, она выглядит нормально: net .researchgate : gradle-release: 2.8.1

В настоящее время мы используем Gradle 5.2.1, но я также пробовал 6.0.1 - та же ошибка. Есть идеи, почему он не может найти плагин? Кстати, это не только для этого конкретного плагина, я пробовал другие и все еще получаю ту же ошибку.

1 Ответ

0 голосов
/ 09 января 2020

Потянув все, что осталось от моих волос и ударившись головой о стену, я наткнулся на это => https://discuss.gradle.org/t/how-do-i-include-buildscript-block-from-external-gradle-script/7016

Соответствующий комментарий от @Peter_Niederwieser:

" Во-вторых, экстернализация блока сценариев сборки в плагин сценариев не поддерживается. (Это сложная проблема, и вы не можете придумать, как это реализовать.) Возможно, вам придется пережить некоторое дублирование. По крайней мере, на данный момент. Помните, что зависимости, указанные в блоке buildscript проекта, видны всем подпроектам. Следовательно, если вам не нужны зависимости, доступные в плагине скрипта, вам просто нужно объявить их в сценарии сборки проекта root."

Именно это я и пытался сделать. Я не собираюсь проклинать здесь ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...