2017-05-15 7 views
0

Ich bin fest mit der Verwendung von Punktnotation in Gradle Build-Skripten fest.Punktnotation mit Gradle 3.5 und Spring Boot

Ich habe ein Multiprojekt mit einem Hauptprojekt und Unterprojekten gebaut.

Dann Haupt build.gradle ist so etwas wie dies

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' 
    } 
} 

Das Teilprojekt für die Web-Anwendung ist wie dies

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" 
} 

bauen Der Build-Skripte nicht abgeschlossen ist.
Ich habe herausgefunden, dass man im Hauptprojekt eine Gradle.properties verwenden kann, um die Versionen zu definieren.

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

1. Frage
Wie kann ich Variablen mit Punktnotation? Ich habe das mit $slf4j.version versucht, aber der Gradle-Build-Prozess ist fehlgeschlagen.

2. Frage
Wo kann ich eine komplette Liste aller Variablen finden, die durch die Feder Boot-Plugin unterstützt? Ich suchte stundenlang ohne Glück.

1. Aktualisieren
Erste Frage wurde von @Vampire beantwortet.
Ich aktualisiere die build.gradle mit ${project.'slf4j.version'}

+1

Ich weiß nicht, ob dies Ihre zweite Frage beantwortet, aber das [pom.xml Datei aus dem Spring-Boot-Git-Repository] (https://github.com/spring-projects/spring-boot/blob/master/spring-boot-dependencies/pom.xml) sieht vielversprechend aus, was Sie wissen wollen. Zumindest alle Abhängigkeiten in Punktnotation, die Sie aufgelistet haben, sind als Teil des Abschnitts "" verfügbar. – l00tr

Antwort

3

Verwenden project.'slf4j.version' eine Eigenschaft zuzugreifen, die einen Punkt im Namen hat, oder alternativ project.properties['slf4j.version'] oder project.getProperty('slf4j.version') sollte auch funktionieren.

+0

Beide Fragen werden beantwortet. Siehe im Kommentar von @ l00tr. Ich melde dies als Antwort ... – Nabor

0

Ich würde vorschlagen, versions.slf4j und versions.logback mit etc statt slf4j.version und logback.version dann könnten Sie tun:

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

Keine Antwort, weil die Verwendung verschiedener Variablennamen Spring Boot nicht die richtige Lösung ist ... – Nabor

Verwandte Themen