最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot項目導出jar包及瘦身部署方式

 更新時間:2024年07月11日 09:38:45   作者:wszhlzjl  
今天項目要求Nginx+jar包運行多個項目,在此記錄一下部署的過程,其中借鑒了好多網(wǎng)上前輩的經(jīng)驗,感謝各位的無私分享

SpringBoot項目使用mvn命令導出可運行jar包

這部分主要是Pom.xml文件的配置,而且主要是<build></build>部分的配置。

我的springboot版本是2.1.4

1、導出包含lib依賴包的可執(zhí)行jar包

<build>
        <plugins>
            <!--<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>-->
            <!-- 編譯插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                    <mainClass>${start-class}</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- 打包插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>3.3.0</version>
                <configuration>
                    <!--<appendAssemblyId>false</appendAssemblyId>-->
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <!-- 主程序入口類 -->
                            <mainClass>cn.zh.demo01.Demo01Application</mainClass>
                        </manifest>
                    </archive>
                </configuration>
                <executions>
                    <execution>
                        <!--<id>make-assembly</id>-->
                        <id>assemble-all</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>

導出這個包大小為27M,感覺如果多個項目都這樣就太占空間了。

所以才有了下面的瘦身。

因為多個項目使用lib依賴包都差不多。

2、導出lib目錄與jar包分離的可運行jar

    <build>
        <plugins>
            <!--<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>-->
            <!-- 編譯插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--重寫包含依賴,包含不存在的依賴,jar里沒有pom里的依賴-->
                    <includes>
                        <include>
                            <groupId>null</groupId>
                            <artifactId>null</artifactId>
                        </include>
                    </includes>
                    <layout>ZIP</layout>
                    <!--使用外部配置文件,jar包里沒有資源文件-->
                    <addResources>true</addResources>
                    <outputDirectory>${project.build.directory}</outputDirectory>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                        <configuration>
                            <!--配置jar包特殊標識 配置后,保留原文件,生成新文件 *-run.jar -->
                            <!--配置jar包特殊標識 不配置,原文件命名為 *.jar.original,生成新文件 *.jar -->
                            <!--<classifier>run</classifier>-->
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!-- 打包插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <!--不打包資源文件-->
                    <!--<excludes>-->
                    <!--<exclude>*.**</exclude>-->
                    <!--<exclude>*/*.xml</exclude>-->
                    <!--</excludes>-->
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <!--MANIFEST.MF 中 Class-Path 加入前綴-->
                            <classpathPrefix>lib/</classpathPrefix>
                            <!-- 主程序入口類 -->
                            <mainClass>cn.zh.demo01.Demo01Application</mainClass>
                        </manifest>
                        <!--<manifestEntries>-->
                        <!--&lt;!&ndash;MANIFEST.MF 中 Class-Path 加入資源文件目錄&ndash;&gt;-->
                        <!--<Class-Path>./resources/</Class-Path>-->
                        <!--</manifestEntries>-->
                    </archive>
                </configuration>
            </plugin>
            <!--拷貝依賴 copy-dependencies-->
            <!--也可以執(zhí)行mvn copy-dependencies 命令打包依賴-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.1.2</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>
                                ${project.build.directory}/lib/
                            </outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>

導出后,lib文件目錄就有26M,我的項目jar包只有幾百K,不錯!

部署及運行

運行命令:java -Dloader.path="lib/" -jar XXXX.jar

loader.path為lib目錄的路徑。

到此又看到springboot的啟動圖標了。。。

但一旦關(guān)閉SSH連接,服務就自動停止了。

于是又上網(wǎng)搜,前輩指出:

nohup java -jar XXX.jar >log.out &;
nohup是保證ssh連接關(guān)閉后,jar任然運行的關(guān)鍵
& 相當于后臺運行,你后面還可以輸入命令
 >log.out  是輸出日志的地方
ps aux|grep XXX.jar 查看某jar包的運行的進程號

關(guān)閉問題解決,但啟動會報:

nohup: ignoring input and redirecting stderr to stdout

再搜,前輩又指出:

把后面的 “&” 改成 “2>&1 &”,于是把啟動命令改成如下:

解釋如下:

2>
表示把標準錯誤(stderr)重定向,標準輸出(stdout)是1。

尖括號后面可以跟文件名,或者是&1, &2,分別表示重定向到標準輸出和標準錯誤。

2> &1
1> &2
2> stderr.log
1> stdout.log

于是我的啟動命令改為:

nohup java -Dloader.path="../lib/" -jar demo01-0.0.1-SNAPSHOT.jar >log.out 2>&1 &

完美解決

關(guān)于Nginx的代理配置,可以上網(wǎng)搜一下,很多前輩的分享,在此不多說了!

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java實現(xiàn)飯店點菜系統(tǒng)

    java實現(xiàn)飯店點菜系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)飯店點菜系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • SpringBoot使用LibreOffice實現(xiàn)高保真Word轉(zhuǎn)PDF的方法

    SpringBoot使用LibreOffice實現(xiàn)高保真Word轉(zhuǎn)PDF的方法

    本文介紹了在SpringBoot中使用LibreOffce實現(xiàn)高保真Word轉(zhuǎn)PDF的方法,首先詳細說明了Windows、Mac、Linux系統(tǒng)及Docker環(huán)境下LibreOffice的安裝步驟和常見問題解決方案,需要的朋友可以參考下
    2026-02-02
  • 一篇文章大家徹底學會Java之格式化輸出

    一篇文章大家徹底學會Java之格式化輸出

    Java提供了多種格式化輸出的方式,包括String.format()、System.out.printf()和Formatter類,這些方法支持數(shù)字、日期、字符串等多種格式化操作,這篇文章主要介紹了Java格式化輸出的相關(guān)資料,需要的朋友可以參考下
    2025-04-04
  • 教你如何把Eclipse創(chuàng)建的Web項目(非Maven)導入Idea

    教你如何把Eclipse創(chuàng)建的Web項目(非Maven)導入Idea

    這篇文章主要介紹了教你如何把Eclipse創(chuàng)建的Web項目(非Maven)導入Idea,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • struts1之簡單mvc示例_動力節(jié)點Java學院整理

    struts1之簡單mvc示例_動力節(jié)點Java學院整理

    這篇文章主要介紹了struts1之簡單mvc示例的相關(guān)資料,需要的朋友可以參考下
    2017-09-09
  • JavaWeb Spring依賴注入深入學習

    JavaWeb Spring依賴注入深入學習

    這篇文章主要為大家詳細介紹了JavaWeb Spring依賴注入,深入學習Spring依賴注入,感興趣的小伙伴們可以參考一下
    2016-09-09
  • JAVA多線程并發(fā)下的單例模式應用

    JAVA多線程并發(fā)下的單例模式應用

    單例模式應該是設計模式中比較簡單的一個,也是非常常見的,但是在多線程并發(fā)的環(huán)境下使用卻是不那么簡單了,今天給大家分享一個我在開發(fā)過程中遇到的單例模式的應用。
    2017-03-03
  • struts升級到2.5.2遇到的問題及解決方案(推薦)

    struts升級到2.5.2遇到的問題及解決方案(推薦)

    原來的版本是2.3.x,由于安全原因需要升級到2.5.2。但是在升級過程中遇到各種各樣的問題,下面小編給大家?guī)砹藄truts升級到2.5.2遇到的問題及解決方案,需要的朋友參考下吧
    2016-11-11
  • Spring中的FactoryBean實現(xiàn)原理詳解

    Spring中的FactoryBean實現(xiàn)原理詳解

    這篇文章主要介紹了Spring中的FactoryBean實現(xiàn)原理詳解,spring中有兩種類型的Bean,一種是普通的JavaBean,另一種就是工廠Bean(FactoryBean),這兩種Bean都受Spring的IoC容器管理,但它們之間卻有一些區(qū)別,需要的朋友可以參考下
    2024-02-02
  • Maven 項目生成jar運行時提示“沒有主清單屬性”

    Maven 項目生成jar運行時提示“沒有主清單屬性”

    這篇文章主要介紹了Maven 項目生成jar運行時提示“沒有主清單屬性”,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03

最新評論

公安县| 扶风县| 阿克苏市| 曲水县| 平江县| 襄汾县| 启东市| 高安市| 香河县| 三亚市| 高雄市| 吴忠市| 桃园县| 苍溪县| 通州区| 广安市| 安国市| 灵武市| 连山| 美姑县| 盘锦市| 红安县| 阜新市| 汤原县| 荆门市| 马龙县| 漠河县| 铁岭县| 沿河| 新乡县| 南充市| 醴陵市| 榕江县| 玛纳斯县| 南康市| 准格尔旗| 富阳市| 红桥区| 手游| 花莲市| 泾川县|