Невозможно параметризовать версию в блоке плагинов Gradle - PullRequest
1 голос
/ 10 апреля 2019

В Gradle, когда я объявляю плагин с жестко закодированной версией, он работает хорошо:

plugins {
    id 'org.springframework.boot' version '2.1.4.RELEASE'
}

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

Содержимое gradle.properties:

springBootVersion=2.1.4.RELEASE

Содержимое build.gradle:

plugins {
    id 'org.springframework.boot' version "$springBootVersion"
}

Почему происходит следующее исключение?

Cause: startup failed:
build file 'build.gradle': 10: argument list must be exactly 1 literal non empty string

See https://docs.gradle.org/5.2.1/userguide/plugins.html#sec:plugins_block for information on the plugins {} block

 @ line 10, column 5.
       id 'org.springframework.boot' version "$springBootVersion"
       ^

1 error

1 Ответ

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

То, с чем вы сталкиваетесь, является задокументированным ограничением блока plugins. Вы не можете использовать параметризацию в этом.

Что возможно, так это делегировать конфигурацию версии плагина на settings.gradle.

В gradle.properties:

springBootVersion=2.1.4.RELEASE

В settings.gradle:

// Must be the first statement of settings.gradle
pluginManagement {
    resolutionStrategy {
        eachPlugin {
            if (requested.id.id == "org.springframework.boot") {
                useModule("org.springframework.boot:org.springframework.boot.gradle.plugin:${springBootVersion}")
            }
        }
    }
}

В build.gradle:

plugins {
    id 'org.springframework.boot'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...