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

springboot打包實現(xiàn)項目JAR包和依賴JAR包分離

 更新時間:2022年02月18日 14:25:42   作者:gin90  
這篇文章主要介紹了springboot打包實現(xiàn)項目JAR包和依賴JAR包分離,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

寫在前面的

當我們使用spring boot寫項目時,一般都會遇到一個問題,那就是spring boot打包時,會將自己寫的代碼和項目的所有依賴文件打成一個可執(zhí)行的jar包。

通常我們的項目都是運行在服務器上的,當項目更新時,每次都要向服務器上傳這個包。如果項目的依賴包很多,那么這個文件就會非常大。

大文件上傳不僅浪費帶寬,有時候網絡不穩(wěn)定,傳輸一半斷網,又要重新上傳,非常麻煩。

默認的maven配置

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

如果能將項目外部依賴和自己的代碼包分開打包,當修改項目后,只需要再次覆蓋修改后的包,那豈不是美滋滋?

解決方案

使用maven的assembly打包插件

assembly配置

在項目中創(chuàng)建一個文件,我放在src/main/assembly/assembly.xml中,大家可以根據喜好自己創(chuàng)建。

assembly中的具體配置

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
    <!--
        必須寫,否則打包時會有 assembly ID must be present and non-empty 錯誤
        這個名字最終會追加到打包的名字的末尾,如項目的名字為 speed-api-0.0.1-SNAPSHOT,
        則最終生成的包名為 speed-api-0.0.1-SNAPSHOT-bin.zip
     -->
    <id>bin</id>
    <!-- 打包后的文件格式,可以是zip,tar,tar.gz,tar.bz2,jar,war,dir -->
    <formats>
        <format>zip</format>
    </formats>
    <!-- 壓縮包下是否生成和項目名相同的根目錄 -->
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
        <dependencySet>
            <!-- 不使用項目的artifact,第三方jar不要解壓,打包進zip文件的lib目錄 -->
            <useProjectArtifact>false</useProjectArtifact>
            <outputDirectory>lib</outputDirectory>
            <unpack>false</unpack>
        </dependencySet>
    </dependencySets>
    <fileSets>
        <!-- 把項目相關的說明文件,打包進zip文件的根目錄 -->
        <fileSet>
            <directory>${project.basedir}</directory>
            <outputDirectory></outputDirectory>
            <includes>
                <include>README*</include>
                <include>LICENSE*</include>
                <include>NOTICE*</include>
            </includes>
        </fileSet>
        <!-- 把項目的配置文件,打包進zip文件的config目錄 -->
        <fileSet>
            <directory>${project.basedir}/src/main/resources</directory>
            <outputDirectory>config</outputDirectory>
        </fileSet>
        <!-- 把項目的腳本文件,打包進zip文件的bin目錄 -->
        <fileSet>
            <directory>${project.basedir}/src/main/bin</directory>
            <outputDirectory>bin</outputDirectory>
        </fileSet>
        <!-- 把項目自己編譯出來的jar文件,打包進zip文件的根目錄 -->
        <fileSet>
            <directory>${project.build.directory}</directory>
            <outputDirectory></outputDirectory>
            <includes>
                <include>*.jar</include>
            </includes>
        </fileSet>
    </fileSets>
</assembly>

maven中的配置

<build>
    <plugins>
        <!-- 指定啟動類,將依賴打成外部jar包 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <!-- 生成的jar中,不要包含pom.xml和pom.properties這兩個文件 -->
                    <addMavenDescriptor>false</addMavenDescriptor>
                    <manifest>
                        <!-- 是否要把第三方jar放到manifest的classpath中 -->
                        <addClasspath>true</addClasspath>
                        <!-- 外部依賴jar包的最終位置 -->
                        <classpathPrefix>lib/</classpathPrefix>
                        <!-- 項目啟動類 -->
                        <mainClass>com.zbrx.speed.App</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <!-- 使用assembly打包 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <descriptors>
                    <!-- assembly配置文件位置 -->
                    <descriptor>src/main/assembly/assembly.xml</descriptor>
                </descriptors>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <!-- 打包發(fā)布時,跳過單元測試 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <skipTests>true</skipTests>
            </configuration>
        </plugin>
    </plugins>
</build>

最終打包后的效果

壓縮包里的文件內容

lib中的文件

config配置文件

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

相關文章

  • java-spark中各種常用算子的寫法示例

    java-spark中各種常用算子的寫法示例

    這篇文章主要給大家介紹了關于java-spark中各種常用算子的寫法的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-06-06
  • SpringMVC+Shiro的基本使用及功能介紹

    SpringMVC+Shiro的基本使用及功能介紹

    本文給大家介紹SpringMVC+Shiro的基本使用,Apache?Shiro是Java的一個安全框架,Shiro本身無法知道所持有令牌的用戶是否合法,因為除了項目的設計人員恐怕誰都無法得知,本文只介紹最常見也最重要的一種實現(xiàn)方式數(shù)據庫查詢
    2022-04-04
  • Java全面解析string類型的xml字符串

    Java全面解析string類型的xml字符串

    這篇文章主要介紹了Java全面解析string類型的xml字符串,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java 反射獲取類詳細信息的常用方法總結

    Java 反射獲取類詳細信息的常用方法總結

    Java 反射獲取類詳細信息的常用方法總結,需要的朋友可以參考一下
    2013-03-03
  • Java將文件上傳到ftp服務器

    Java將文件上傳到ftp服務器

    這篇文章主要為大家詳細介紹了Java將文件上傳到ftp服務器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • ruoyi微服務版本搭建運行方式

    ruoyi微服務版本搭建運行方式

    這篇文章主要介紹了ruoyi微服務版本搭建運行方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java實現(xiàn)基于token認證的方法示例

    Java實現(xiàn)基于token認證的方法示例

    這篇文章主要介紹了Java實現(xiàn)基于token認證的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • java數(shù)據結構實現(xiàn)雙向鏈表功能

    java數(shù)據結構實現(xiàn)雙向鏈表功能

    這篇文章主要為大家詳細介紹了java數(shù)據結構實現(xiàn)雙向鏈表功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Spring計劃任務用法實例詳解

    Spring計劃任務用法實例詳解

    這篇文章主要介紹了Spring計劃任務用法,結合實例形式詳細分析了spring計劃任務相關原理、配置、使用方法及操作注意事項,需要的朋友可以參考下
    2019-11-11
  • 如何實現(xiàn)nohup?java進程號一直在變方法步驟詳解

    如何實現(xiàn)nohup?java進程號一直在變方法步驟詳解

    這篇文章主要為大家介紹了如何實現(xiàn)nohup?java進程號一直在變方法步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11

最新評論

伊吾县| 中山市| 剑阁县| 蒙城县| 宜春市| 应城市| 邯郸县| 正镶白旗| 芦山县| 紫金县| 喀什市| 张家港市| 连江县| 巨鹿县| 天津市| 富顺县| 望江县| 兴海县| 洛浦县| 宣威市| 通城县| 沅江市| 古丈县| 铜鼓县| 长阳| 平凉市| 兴文县| 磴口县| 盐边县| 旅游| 剑阁县| 凤台县| 和平县| 杂多县| 乌拉特中旗| 公主岭市| 安岳县| 元江| 保康县| 怀安县| 响水县|