中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用maven war包打包去除jar包

發布時間:2021-07-23 16:54:59 來源:億速云 閱讀:596 作者:chen 欄目:開發技術

這篇文章主要介紹“如何使用maven war包打包去除jar包”,在日常操作中,相信很多人在如何使用maven war包打包去除jar包問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何使用maven war包打包去除jar包”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

1、pom文件配置

1.1 添加maven-dependency-plugin插件用于將引用的jar包拷貝到指定的路徑

便于后續tomcat啟動指定依賴包路徑

<!--拷貝依賴到jar外面的lib目錄-->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>copy</id>
            <phase>package</phase>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
            <configuration>                <!--指定的依賴路徑-->
                <outputDirectory>
                    ${project.build.directory}/lib
                </outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

使用這個插件構建完之后的目錄結構多了一個lib目錄(即上述配置的outputDirectory指定的路徑),里面是依賴的jar包:

如何使用maven war包打包去除jar包

如何使用maven war包打包去除jar包

1.2 添加maven-war-plugin插件

<!-- war包 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <packagingExcludes>
            <!--排除具體jar包-->
            <!--WEB-INF/lib/commons-io-2.5.jar,-->
            <!--WEB-INF/lib/commons-lang3-3.6.jar,-->
            <!--排除不是以commons-開頭的所有jar包-->
            <!--%regex[WEB-INF/lib/(?!commons-).*.*.jar]-->
            <!--排除以commons-開頭的所有jar包-->
            %regex[WEB-INF/lib/(commons-).*.*.jar]
        </packagingExcludes>
    </configuration>
</plugin>

上述構建配置后打出的war包就會去除掉除war包里/WEB-INF/lib/下面相應的jar包,使得發布包大小變小,加快上傳服務器速度,如下圖,加壓war包,查看WEB-INF/lib目錄,沒有包含commons開頭的jar包,說明已經去除掉了:

如何使用maven war包打包去除jar包

原先war包里的結構是包含很多commons開頭的jar,如下圖:

如何使用maven war包打包去除jar包

按照上述思路我們就可以將lib下的所有jar都去掉,去掉依賴jar以后就可以通過配置tomcat引用外部lib路徑來部署項目了

附注:

若存在不同版本依賴:比如項目A依賴Y庫的1.0版本,項目B依賴Y庫的2.0版本,那么可能會出現版本依賴沖突(兩個版本不兼容的情況下)

解決方案:

1、能做到版本一致就保持使用同一個版本,盡可能保證多個項目使用同一個庫的版本一致

2、讓項目各自依賴所需的版本并打進war包中,把其他同版本的jar包放在同一個共享包下

測試發現依賴在查找時從上往下找,匹配到就用第一個

如下圖會使用comm-0.0.1.jar版本的

如何使用maven war包打包去除jar包

springboot 打包插件去除jar包瘦身

到此,關于“如何使用maven war包打包去除jar包”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沧州市| 花垣县| 甘南县| 吉首市| 本溪| 岑巩县| 连州市| 周口市| 长宁区| 金塔县| 丹江口市| 陵川县| 嵩明县| 江源县| 南木林县| 通化县| 咸宁市| 石泉县| 洮南市| 榆中县| 宁国市| 开平市| 石嘴山市| 荃湾区| 富蕴县| 崇信县| 陕西省| 甘泉县| 镇远县| 湖南省| 大宁县| 垣曲县| 定边县| 开封县| 海林市| 伊宁市| 松滋市| 康乐县| 青州市| 高平市| 嘉祥县|