So erstellen Sie mit Gradle ein Spring Boot 2-Multiprojekt.
Java
openjdk 10.0.2 2018-07-17
Gradle
4.10
Spring Boot
2.0.4
|-settings.gradle
|-build.gradle
|
|-foo/
| |-build.gradle
| :
|
`-bar/
|-build.gradle
:
foo
Projekt verweist auf das bar
Projekt/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)
org.springframework.boot
intern verwendet, aber in 2.x scheint es herausgenommen worden zu sein./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
> 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.
--Überprüfen Sie das Build-Ergebnis des "Bar" -Projekts
> dir /b bar\build\
classes
tmp
--bar
Projektglas wurde nicht generiert
java - Spring Boot multi module project with Gradle doesn't build - Stack Overflow
bar
-Projekt) auf der abhängigen Seite jedoch in erster Linie kein Spring Boot-Projekt, also auch das Teilprojekt org.springframework.boot
Es wird erklärt, dass das Anwenden des Plug-Ins falsch ist
――Ich denke, das stimmt, also werde ich es so beheben./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"
}
> gradle :foo:compileJava
BUILD SUCCESSFUL in 17s
/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"
}
}
...
}
dependencyManagement
hinzu, um die Spring Boot-Stückliste zu laden/foo/build.gradle
apply plugin: "org.springframework.boot"
...
Recommended Posts