Управление плагинами Gradle

#java #gradle #groovy #build #nexus

#java #gradle #отличный #сборка #nexus

Вопрос:

Я пытаюсь настроить управление плагинами для проекта Gradle, чтобы извлекать зависимости плагинов из Nexus.

У меня есть следующая строка в качестве первого блока в файле settings.gradle

 pluginManagement {
    repositories {
        if (project.hasProperty('kkvmvn')) {
            maven {
              url "${kkvmvn}"
            }
        } else {
            mavenLocal()
            mavenCentral()
            gradlePluginPortal()
        }
    }
}
  

Однако я получаю следующую ошибку

 Caused by: groovy.lang.MissingPropertyException: Could not get unknown property 'project' for repository container of type org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.
  

В принципе, мне нужно получить доступ к параметру командной строки, чтобы установить URL-адрес Nexus. Как мне это сделать в файле settings.gradle? AFAIK невозможно объявить репозиторий плагинов в файле build.gradle. Вот пример, как я извлекаю другие зависимости библиотеки в build.gradle

 subprojects {
    // Java Version JDK 8
    sourceCompatibility = 1.8
    targetCompatibility = 1.8

    tasks.withType(JavaCompile) {
        options.encoding = 'UTF-8'
    }

    repositories {
        if (project.hasProperty('kkvmvn')) {
            maven {
              url "${kkvmvn}"
            }
        } else {
            mavenLocal()
            mavenCentral()
        }
    }
}
  

Ответ №1:

В случае, если это поможет кому-либо еще, к свойствам gradle можно получить доступ в, settings.gradle используя объект Settings. Итак, условный способ настройки репозиториев плагинов будет выглядеть примерно так:

 pluginManagement {
    repositories {
        if (settings.hasProperty('kkvmvn')) {
            maven {
              url settings.kkvmvn
            }
        } else {
            mavenLocal()
            mavenCentral()
            gradlePluginPortal()
        }
    }
}