Code for BAEL-1812 (#4432)
* Thin jar option for Spring Boot bootstrap and gradle projects. * .gitignore for spring-boot-gradle project. * Maven and Gradle 'thin' Boot builds (optional) * Rename 'wrapper' to 'thin' and shorten some lines of code to fit the article.
This commit is contained in:
parent
3e2d544144
commit
aaa9202883
|
@ -105,6 +105,25 @@
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
</profile>
|
</profile>
|
||||||
|
<profile>
|
||||||
|
<id>thin-jar</id>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
<dependencies>
|
||||||
|
<!-- The following enables the "thin jar" deployment option. -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot.experimental</groupId>
|
||||||
|
<artifactId>spring-boot-thin-layout</artifactId>
|
||||||
|
<version>${thin.version}</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</profile>
|
||||||
</profiles>
|
</profiles>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
@ -115,6 +134,7 @@
|
||||||
<!-- plugins -->
|
<!-- plugins -->
|
||||||
<maven.compiler.source>1.8</maven.compiler.source>
|
<maven.compiler.source>1.8</maven.compiler.source>
|
||||||
<maven.compiler.target>1.8</maven.compiler.target>
|
<maven.compiler.target>1.8</maven.compiler.target>
|
||||||
|
<thin.version>1.0.11.RELEASE</thin.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
</project>
|
</project>
|
|
@ -88,6 +88,28 @@
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
</profile>
|
</profile>
|
||||||
|
<profile>
|
||||||
|
<id>thin-jar</id>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot.experimental</groupId>
|
||||||
|
<artifactId>spring-boot-thin-maven-plugin</artifactId>
|
||||||
|
<version>${thin.version}</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<!-- Download the dependencies at build time -->
|
||||||
|
<id>resolve</id>
|
||||||
|
<goals>
|
||||||
|
<goal>resolve</goal>
|
||||||
|
</goals>
|
||||||
|
<inherited>false</inherited>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</profile>
|
||||||
</profiles>
|
</profiles>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
.gradle/
|
||||||
|
build/
|
|
@ -1,12 +1,16 @@
|
||||||
buildscript {
|
buildscript {
|
||||||
ext {
|
ext {
|
||||||
springBootVersion = '2.0.0.RELEASE'
|
springBootPlugin = 'org.springframework.boot:spring-boot-gradle-plugin'
|
||||||
|
springBootVersion = '2.0.2.RELEASE'
|
||||||
|
thinPlugin = 'org.springframework.boot.experimental:spring-boot-thin-gradle-plugin'
|
||||||
|
thinVersion = '1.0.11.RELEASE'
|
||||||
}
|
}
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
|
classpath("${springBootPlugin}:${springBootVersion}")
|
||||||
|
classpath("${thinPlugin}:${thinVersion}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,6 +18,8 @@ apply plugin: 'java'
|
||||||
apply plugin: 'eclipse'
|
apply plugin: 'eclipse'
|
||||||
apply plugin: 'org.springframework.boot'
|
apply plugin: 'org.springframework.boot'
|
||||||
apply plugin: 'io.spring.dependency-management'
|
apply plugin: 'io.spring.dependency-management'
|
||||||
|
//add tasks thinJar and thinResolve for thin JAR deployments
|
||||||
|
apply plugin: 'org.springframework.boot.experimental.thin-launcher'
|
||||||
|
|
||||||
group = 'org.baeldung'
|
group = 'org.baeldung'
|
||||||
version = '0.0.1-SNAPSHOT'
|
version = '0.0.1-SNAPSHOT'
|
||||||
|
@ -23,7 +29,6 @@ repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile('org.springframework.boot:spring-boot-starter')
|
compile('org.springframework.boot:spring-boot-starter')
|
||||||
testCompile('org.springframework.boot:spring-boot-starter-test')
|
testCompile('org.springframework.boot:spring-boot-starter-test')
|
||||||
|
@ -42,3 +47,21 @@ bootJar {
|
||||||
// attributes 'Start-Class': 'org.baeldung.DemoApplication'
|
// attributes 'Start-Class': 'org.baeldung.DemoApplication'
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Enable this to generate and use a pom.xml file
|
||||||
|
apply plugin: 'maven'
|
||||||
|
|
||||||
|
//If you want to customize the generated pom.xml you can edit this task and add it as a dependency to the bootJar task
|
||||||
|
task createPom {
|
||||||
|
def basePath = 'build/resources/main/META-INF/maven'
|
||||||
|
doLast {
|
||||||
|
pom {
|
||||||
|
withXml(dependencyManagement.pomConfigurer)
|
||||||
|
}.writeTo("${basePath}/${project.group}/${project.name}/pom.xml")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Uncomment the following to use your custom generated pom.xml
|
||||||
|
bootJar.dependsOn = [createPom]
|
||||||
|
|
||||||
|
//Enable this to generate and use a thin.properties file
|
||||||
|
//bootJar.dependsOn = [thinProperties]
|
|
@ -1,6 +1,6 @@
|
||||||
#Tue Feb 06 12:27:20 CET 2018
|
#Fri Jun 01 20:39:48 CEST 2018
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-all.zip
|
||||||
|
|
Loading…
Reference in New Issue