您好,登錄后才能下訂單哦!
這篇文章主要介紹“如何使用maven war包打包去除jar包”,在日常操作中,相信很多人在如何使用maven war包打包去除jar包問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”如何使用maven war包打包去除jar包”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
便于后續(xù)tomcat啟動(dòng)指定依賴包路徑
<!--拷貝依賴到j(luò)ar外面的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>
使用這個(gè)插件構(gòu)建完之后的目錄結(jié)構(gòu)多了一個(gè)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-開(kāi)頭的所有jar包--> <!--%regex[WEB-INF/lib/(?!commons-).*.*.jar]--> <!--排除以commons-開(kāi)頭的所有jar包--> %regex[WEB-INF/lib/(commons-).*.*.jar] </packagingExcludes> </configuration> </plugin>
上述構(gòu)建配置后打出的war包就會(huì)去除掉除war包里/WEB-INF/lib/下面相應(yīng)的jar包,使得發(fā)布包大小變小,加快上傳服務(wù)器速度,如下圖,加壓war包,查看WEB-INF/lib目錄,沒(méi)有包含commons開(kāi)頭的jar包,說(shuō)明已經(jīng)去除掉了:
原先war包里的結(jié)構(gòu)是包含很多commons開(kāi)頭的jar,如下圖:
按照上述思路我們就可以將lib下的所有jar都去掉,去掉依賴jar以后就可以通過(guò)配置tomcat引用外部lib路徑來(lái)部署項(xiàng)目了
附注:
若存在不同版本依賴:比如項(xiàng)目A依賴Y庫(kù)的1.0版本,項(xiàng)目B依賴Y庫(kù)的2.0版本,那么可能會(huì)出現(xiàn)版本依賴沖突(兩個(gè)版本不兼容的情況下)
1、能做到版本一致就保持使用同一個(gè)版本,盡可能保證多個(gè)項(xiàng)目使用同一個(gè)庫(kù)的版本一致
2、讓項(xiàng)目各自依賴所需的版本并打進(jìn)war包中,把其他同版本的jar包放在同一個(gè)共享包下
測(cè)試發(fā)現(xiàn)依賴在查找時(shí)從上往下找,匹配到就用第一個(gè)
springboot 打包插件去除jar包瘦身
到此,關(guān)于“如何使用maven war包打包去除jar包”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。