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:
Alessio Stalla 2018-06-08 22:47:00 +02:00 committed by maibin
parent 3e2d544144
commit aaa9202883
5 changed files with 72 additions and 5 deletions

View File

@ -105,6 +105,25 @@
</plugins>
</build>
</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>
<properties>
@ -115,6 +134,7 @@
<!-- plugins -->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<thin.version>1.0.11.RELEASE</thin.version>
</properties>
</project>

View File

@ -88,6 +88,28 @@
</plugins>
</build>
</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>
<properties>

2
spring-boot-gradle/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.gradle/
build/

View File

@ -1,12 +1,16 @@
buildscript {
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 {
mavenCentral()
}
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: 'org.springframework.boot'
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'
version = '0.0.1-SNAPSHOT'
@ -23,7 +29,6 @@ repositories {
mavenCentral()
}
dependencies {
compile('org.springframework.boot:spring-boot-starter')
testCompile('org.springframework.boot:spring-boot-starter-test')
@ -42,3 +47,21 @@ bootJar {
// 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]

View File

@ -1,6 +1,6 @@
#Tue Feb 06 12:27:20 CET 2018
#Fri Jun 01 20:39:48 CEST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
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