您好,登錄后才能下訂單哦!
這篇文章主要介紹“如何使用maven war包打包去除jar包”,在日常操作中,相信很多人在如何使用maven war包打包去除jar包問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何使用maven war包打包去除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包:
<!-- 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包,說明已經去除掉了:
原先war包里的結構是包含很多commons開頭的jar,如下圖:
按照上述思路我們就可以將lib下的所有jar都去掉,去掉依賴jar以后就可以通過配置tomcat引用外部lib路徑來部署項目了
附注:
若存在不同版本依賴:比如項目A依賴Y庫的1.0版本,項目B依賴Y庫的2.0版本,那么可能會出現版本依賴沖突(兩個版本不兼容的情況下)
1、能做到版本一致就保持使用同一個版本,盡可能保證多個項目使用同一個庫的版本一致
2、讓項目各自依賴所需的版本并打進war包中,把其他同版本的jar包放在同一個共享包下
測試發現依賴在查找時從上往下找,匹配到就用第一個
springboot 打包插件去除jar包瘦身
到此,關于“如何使用maven war包打包去除jar包”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。