使用spring boot建立fat jar APP

介紹

在好久很好久之前,咱們部署web程序的方式是怎麼樣的呢?配置好服務器,將本身寫的應用程序打包成war包,扔進服務器中指定的目錄裏面。固然免不了要配置一些負責的xml和自定義一些servlet。java

如今有了spring boot,一切都變了,咱們能夠將web應用程序打包成fat jar包,直接運行就好了。git

本文將會關注於怎麼使用Spring Boot建立一個fat jar包。github

全部你須要作的就是添加以下依賴:web

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

build和run

有了上面的配置,只須要使用spring

mvn clean install

就能夠生成相應的jar包了。 shell

若是要運行它,使用:tomcat

java -jar <artifact-name>

便可。很是簡潔。springboot

若是你要在服務器上面永久運行該服務,即便登陸的用戶退出服務器,則可使用nohup命令:ruby

nohup java -jar <artifact-name>

fat jar和 fat war

在上面的例子中,全部的依賴jar包都會被打包進入這一個fat jar中,若是你使用了tomcat,那麼tomcat也會被打包進去。服務器

但有時候咱們仍是須要打包成war包,部署在服務器中,這種狀況只須要將pom.xml中的packaging屬性修改成war便可。

更多配置

大多狀況下,咱們不須要額外的配置,若是咱們有多個main class,咱們須要指定具體的哪一個類:

<properties>
        <start-class>com.flydean.FatJarApp</start-class>
    </properties>

若是你沒有從spring-boot-starter-parent繼承,那麼你須要將main class添加到maven plugin中:

<plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.flydean.FatJarApp</mainClass>
                    <layout>ZIP</layout>
                </configuration>
            </plugin>
        </plugins>

有些狀況下,你須要告訴maven來unpack一些依賴:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <requiresUnpack>
            <dependency>
                <groupId>org.jruby</groupId>
                <artifactId>jruby-complete</artifactId>
            </dependency>
        </requiresUnpack>
    </configuration>
</plugin>

本文的代碼請參考https://github.com/ddean2009/learn-springboot2/tree/master/springboot-fatjar

更多教程請參考 flydean的博客

相關文章
相關標籤/搜索