带Gradle 3.5和Spring Boot的点表示法

时间:2017-05-15 12:46:54

标签: gradle spring-boot

我坚持在Gradle构建脚本中使用点表示法。

我有一个包含主项目和子项目的多项目构建。

然后main build.gradle就是这样的

subprojects {
    apply plugin: 'java'
    sourceCompatibility = 1.8
    dependencies {
        compile "org.slf4j:slf4j-api:${project.'slf4j.version'}",
                'javax.inject:javax.inject:1'
        testCompile 'junit:junit:4.12'
    }
}

Web应用程序的子项目就像这样构建

plugins {
    id 'org.springframework.boot' version '1.5.3.RELEASE'
    id 'eclipse-wtp'
    id 'war'
}
dependencies {
    compile (project(":${rootProject.name}-API")){transitive=false}

    compile "org.springframework.boot:spring-boot-starter",
            "org.springframework.boot:spring-boot-starter-security"
}

构建脚本不完整 我发现,可以使用主项目中的gradle.properties来定义版本。

logback.version=1.2.3
slf4j.version=1.7.25
slf4jVersion=1.7.25
spring.version=4.3.8.RELEASE

1。问题
如何使用带点符号的变量?我尝试使用$slf4j.version,但Gradle构建过程失败。

2。问题
哪里可以找到spring boot插件支持的所有变量的完整列表?我搜索了几个小时没有运气。

1。更新
第一个问题由@Vampire回答 我使用${project.'slf4j.version'}

更新build.gradle

2 个答案:

答案 0 :(得分:3)

使用project.'slf4j.version'访问名称中包含点的属性,或者project.properties['slf4j.version']project.getProperty('slf4j.version')也可以使用。

答案 1 :(得分:0)

我建议使用versions.slf4jversions.logback等代替slf4j.versionlogback.version然后你可以这样做:

ext {
    versions = [
        slf4j: '1.7.25',
        logback: '1.2.3'
    ]
}
dependencies {
    compile "org.slf4j:slf4j-api:$versions.slf4j"
}