[JAVA] Spring Boot 2 Multiprojekt mit Gradle

So erstellen Sie mit Gradle ein Spring Boot 2-Multiprojekt.

Umgebung

Java

openjdk 10.0.2 2018-07-17

Gradle

4.10

Spring Boot

2.0.4

Ziel Multi-Projekt

|-settings.gradle
|-build.gradle
|
|-foo/
| |-build.gradle
| :
|
`-bar/
  |-build.gradle
  :

Schlechte Mustereinstellung

/build.gradle


buildscript {
    ext {
		springBootVersion = '2.0.4.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

subprojects {
    apply plugin: "java"
    apply plugin: 'org.springframework.boot'
    apply plugin: 'io.spring.dependency-management'

    repositories {
        mavenCentral()
    }

    sourceCompatibility = 10
    targetCompatibility = 10
}

--Plug-Ins usw. werden für das gesamte Teilprojekt (foo, bar) gemeinsam festgelegt. --io.spring.dependency-management ist ein Typ, der es ermöglicht hat, mithilfe des Mechanismus die Version der abhängigen Bibliothek mithilfe von Mavens Stückliste in Gradle zu steuern --Referenz: Wenn Sie Stücklisten mit Gradle verwenden möchten, ist es anscheinend besser, das vom Spring-Team bereitgestellte Abhängigkeitsverwaltungs-Plugin zu verwenden. --Erstellen Sie etwas / 063000)

/foo/build.gradle


dependencies {
    compile project(":bar")
    compile "org.springframework.boot:spring-boot-starter-web"
}

--Erläutern Sie eine Abhängigkeit von : bar und eine Abhängigkeit von Spring-Boot-Starter-Web

Ergebnis kompilieren

> gradle :foo:compileJava

> Task :foo:compileJava FAILED
...\Foo.java:12:Error:Symbol kann nicht gefunden werden
        return new Bar().bar();
                        ^
Symbol:Methodenleiste()
Ort:Klassenleiste
1 Fehler

FAILURE: Build failed with an exception.

bar Die Projektklasse kann nicht aufgelöst werden und es tritt ein Fehler auf.

Erläuterung

--Überprüfen Sie das Build-Ergebnis des "Bar" -Projekts

> dir /b bar\build\
classes
tmp

--bar Projektglas wurde nicht generiert

Problemumgehung

java - Spring Boot multi module project with Gradle doesn't build - Stack Overflow

Gradle multi-project build dependencies of subprojects cannot be resolved · Issue #11594 · spring-projects/spring-boot

OK Muster

/build.gradle


buildscript {
    ext {
        springBootVersion = '2.0.4.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

subprojects {
    apply plugin: "java"
    apply plugin: "io.spring.dependency-management"

    repositories {
        mavenCentral()
    }

    dependencyManagement {
        imports {
            mavenBom "org.springframework.boot:spring-boot-dependencies:$springBootVersion"
        }
    }

    sourceCompatibility = 10
    targetCompatibility = 10
}

/foo/build.gradle


apply plugin: "org.springframework.boot"

dependencies {
    compile project(":bar")
    compile "org.springframework.boot:spring-boot-starter-web"
}

Ergebnis kompilieren

> gradle :foo:compileJava
BUILD SUCCESSFUL in 17s

Erläuterung

/build.gradle


buildscript {
    ext {
        springBootVersion = '2.0.4.RELEASE'
    }
    ...
}

subprojects {
    apply plugin: "java"
    apply plugin: "io.spring.dependency-management"

    ...

    dependencyManagement {
        imports {
            mavenBom "org.springframework.boot:spring-boot-dependencies:$springBootVersion"
        }
    }

    ...
}

/foo/build.gradle


apply plugin: "org.springframework.boot"

...

Recommended Posts

Spring Boot 2 Multiprojekt mit Gradle
Implementieren Sie die Spring Boot-Anwendung in Gradle
Erstellen Sie mit Gradle ein Spring Boot + Docker-Image
Java-Tipps - Erstellen Sie mit Gradle ein Spring Boot-Projekt
Ich wollte Spring Boot in einem Multiprojekt gradle
Zeigen Sie die Gradle-Aufgabe im Spring Boot-Projekt an
Legen Sie den Kontextparameter in Spring Boot fest
Wichtige Änderungen in Spring Boot 1.5
NoHttpResponseException in Spring Boot + WireMock
Frühlingsstiefel Hallo Welt in Eclipse
Spring Boot-Anwendungsentwicklung in Eclipse
◆ Konstruktionsnotiz für Spring Boot + Gradle-Umgebung
Schreiben Sie den Testcode mit Spring Boot
Erstellen Sie mit Gradle eine ausführbare JAR für mehrere Projekte
Implementieren Sie die REST-API mit Spring Boot
Was ist @Autowired im Spring Boot?
Verwendung von Thymeleaf mit Spring Boot
Starten Sie mit IntelliJ ein (altes) Spring Boot-Projekt
Statische Dateizugriffspriorität beim Spring Boot
Spring Boot-Protokoll im JSON-Format ausgeben
Memorandum zum Herunterladen lokaler Dateien mit Spring Boot
Fordern Sie Spring Boot heraus
Erstellen Sie mit IntelliJ ein Java Spring Boot-Projekt
Lösen Sie die Thymeleaf-Syntaxprüfung in Spring Boot
[Trainieren! ] Zeigen Sie Hello World mit Spring Boot an
Verwenden Sie die DynamoDB-Abfragemethode mit Spring Boot
Spring Boot Form
Konfigurieren Sie ein Multiprojekt mit Unterverzeichnissen in Gradle
Zusammenfassung der Grundeinstellungen für Spring Boot, Doma2, Gradle
Spring Boot Denken Sie daran
gae + frühlingsstiefel
DI SessionScope Bean im Spring Boot 2-Filter
(IntelliJ + gradle) Hallo Welt mit Spring Boot
Fügen Sie Frühlingsstiefel und Gradle zur Sonnenfinsternis hinzu
Ändern Sie das Sitzungszeitlimit in Spring Boot
Erstellen Sie eine Website mit Spring Boot + Gradle (jdk1.8.x)
SameSite-Cookie im Spring Boot (Spring Web MVC + Tomcat)
Testen Sie den Controller mit Mock MVC im Spring Boot
Asynchrone Verarbeitung mit regelmäßiger Ausführung in Spring Boot
Führen Sie ein Spring Boot-Projekt mit VS-Code aus
Führen Sie die Scala-Anwendung mit Spring Boot über Gradle aus
Servlet-Filter mit Spring Boot verwenden [Spring Boot 1.x, 2.x kompatibel]
So fügen Sie in Spring Boot einen Klassenpfad hinzu
Erstellen Sie mit Gradle Spring Boot-Projekte nach Umgebung
So binden Sie mit einer Eigenschaftendatei in Spring Boot
Anmerkungen, die in Spring Boot-Aufgabenverwaltungstools verwendet werden
Injizieren Sie den Logger im Frühjahr
SPRING BOOT Lernaufzeichnung 01
Frühlingsstiefel + Heroku Postgres
Schreiben von Frühlingsstiefel-Memos (1)
SPRING BOOT Lernprotokoll 02
Spring Boot2 Spickzettel
Spring Boot-Ausnahmebehandlung
Spring Boot Servlet-Zuordnung
Spring Boot Entwicklung-Entwicklungsumgebung-
Spring Boot-Lernverfahren
Verwenden Sie Interceptor im Frühjahr
Spring Boot lernen [Anfang]
Microservices in Spring Cloud
Schreiben von Spring Boot-Memos (2)