使用gradle构建spring boot应用

作者: SamHxm | 来源:发表于2017-01-09 16:16 被阅读973次

    注意点

    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

    相关文章

      网友评论

        本文标题:使用gradle构建spring boot应用

        本文链接:https://www.haomeiwen.com/subject/lxdhbttx.html