使用gradle构建spring boot应用

注意点

spring boot项目构建为jar包或war包均可,如果构建为jar包,在构建时指定MainClass。如果构建为war包,在代码中不能以main方法所在类作为启动类,而以下面的代码所谓启动类。

@SpringBootApplication
public class WebStart extends SpringBootServletInitializer {

    @Override  
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {  
        return application.sources(WebStart.class);  
    }
}

在开发过程中,可以定义main方法类继承该类,从而通过main方法启动项目,节约时间。

import org.springframework.boot.SpringApplication;

public class RunMain extends WebStart {
    public static void main(String[] args) {
        new SpringApplication(WebStart.class).run(args);
    }

}

进入主题

构建jar文件,以spring boot内置容器运行

build.gradle配置

buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.3.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'

jar {
    baseName = 'gradle-simple'
    version =  '0.1.0'
    manifest {
        attributes 'Main-Class': 'com.sam.demo.RunMain'
    }
}

repositories {
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

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

tasks.withType(JavaCompile) {  
    options.encoding = "UTF-8"  
} 

构建项目,生成jar文件

E:\workspace2\gradle-simple>gradle clean build
:clean
:compileJava
:processResources
:classes
:findMainClass
:jar
:bootRepackage
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build

BUILD SUCCESSFUL

Total time: 6.801 secs

运行jar文件

E:\workspace2\gradle-simple>cd build

E:\workspace2\gradle-simple\build>cd libs

E:\workspace2\gradle-simple\build\libs>java -jar gradle-simple-0.1.0.jar

构建war文件,部署至外部容器(tomcat)

build.gradle配置

buildscript {
    repositories {
        mavenLocal()
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.3.RELEASE")
    }
}

apply plugin: 'war'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'

war {
    baseName = "gradle-simple"
    extension = "zip"
}

repositories {
    mavenCentral()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

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

tasks.withType(JavaCompile) {  
    options.encoding = "UTF-8"  
} 

构建项目,生成zip文件

E:\workspace2\gradle-simple>gradle clean war
:clean
:compileJava
:processResources
:classes
:war

BUILD SUCCESSFUL

Total time: 7.295 secs

生成的zip文件名为gradle-simple.zip

解压zip文件至外部容器相应目录即可。

如果需要构建war文件,则将extension = "zip"从build.gradle配置文件中的war插件配置部分删除。即将

war {
    baseName = "gradle-simple"
    extension = "zip"
}

改为

war {
    baseName = "gradle-simple"
}

即可。生成的war文件名为gradle-simple.war

    原文作者:SamHxm
    原文地址: https://www.jianshu.com/p/b3be5e54d836
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞