Свойство версии Gradle Dependency - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть несколько зависимостей, которые имеют одинаковый идентификатор группы и идентификатор версии.Например,

dependencies {
    compile "org.springframework.boot:spring-boot-starter-jetty:2.1.0.RELEASE"
    compile "org.springframework.boot:spring-boot-starter:2.1.0.RELEASE"
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

Я хочу, чтобы 2.1.0.RELEASE был перемещен в свойство, определенное один раз.Это пример , как я бы сделал это в Maven.

<properties>
    <spring.boot.version>2.1.0.RELEASE</spring.boot.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jetty</artifactId>
        <version>${spring.boot.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <version>${spring.boot.version}</version>
    </dependency>
</dependencies>

Я хочу получить аналогичный подход с Gradle.До сих пор я пытался иметь файл gradle.properties и иметь там свойство.

springBootVersion=2.1.0.RELEASE

build.gradle будет

dependencies {
    compile "org.springframework.boot:spring-boot-starter:${springBootVersion}"
    compile "org.springframework.boot:spring-boot-starter-jetty:${springBootVersion}"
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

Если я использую точки . в имени свойства, оно не будет построено.Опять же, свойство spring.boot.version в gradle.properties завершается ошибкой:

Could not get unknown property 'spring' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

1 Ответ

0 голосов
/ 01 декабря 2018

Проще говоря, вы не можете использовать spring.boot.version напрямую для ссылки на ваше имущество, определенное с тем же именем, потому что в Groovy это на самом деле означает reference the property called **version** in the object called **boot** which is a property of object called **spring** вместо этого

...-boot-starter: ${project.ext["spring.Boot.Version"]}"

Это позволит вам добавить свойства с любым количеством периодов в нем.Например, в вашем gradle.properties у вас есть

hello.world=heelloooo

, тогда вы можете сделать

print "The world of stackoverflow says ${project.ext["hello.world"]}" в своем скрипте сборки.

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