減小war包體積

2022-06-15 13:30:18 字數 2033 閱讀 2754

現在使用 jenkins 自動化部署專案有這樣乙個問題,那就是專案使用到的 jar 包比較多,這就導致每次將 war 包上傳到伺服器上的時間就比較長。今天無意間看到乙個方法可以大幅減少 war 包大小,提公升效率。

方法很簡單就是將第三方 jar 包直接放到 tomcat 的 lib 目錄下,而不是放在專案的 lib 資料夾下,這樣就可以讓乙個 war 包顯著的縮小體積,並且不影響專案本身。

tomcat_home/lib下新建自定義jar包檔案,比如jsdoctor,匯入專案所需其他jar包(以後有新增的話,單獨再導一次)

修改tomcat_home/conf/catalina.propertiesshared.loader後面加上$/lib/jsdoctor/*.jar

下面是一段我自己編寫的 shell 指令碼,目的是去除 war 包中的第三方 jar 包並且保留專案自己模組的 jar。

# 將 core 和 common 包移動到臨時位置

mv /root/.jenkins/workspace/jsdoctor/jsdoctor-platform-admin/target/jsdoctor-platform-admin-1.0-snapshot/web-inf/lib/jsdoctor-common-1.0-snapshot.jar /root/.jenkins/workspace/jsdoctor/jsdoctor-platform-admin/target

mv /root/.jenkins/workspace/jsdoctor/jsdoctor-platform-admin/target/jsdoctor-platform-admin-1.0-snapshot/web-inf/lib/jsdoctor-core-1.0-snapshot.jar /root/.jenkins/workspace/jsdoctor/jsdoctor-platform-admin/target

# 刪除 lib 下所有檔案

rm -rf /root/.jenkins/workspace/jsdoctor/jsdoctor-platform-admin/target/jsdoctor-platform-admin-1.0-snapshot/web-inf/lib/*

# 刪除生成的 war 包

rm -rf /root/.jenkins/workspace/jsdoctor/jsdoctor-platform-admin/target/jsdoctor-platform-admin.war

# 將 core 和 common 包移動回來

mv /root/.jenkins/workspace/jsdoctor/jsdoctor-platform-admin/target/jsdoctor-common-1.0-snapshot.jar /root/.jenkins/workspace/jsdoctor/jsdoctor-platform-admin/target/jsdoctor-platform-admin-1.0-snapshot/web-inf/lib/

mv /root/.jenkins/workspace/jsdoctor/jsdoctor-platform-admin/target/jsdoctor-core-1.0-snapshot.jar /root/.jenkins/workspace/jsdoctor/jsdoctor-platform-admin/target/jsdoctor-platform-admin-1.0-snapshot/web-inf/lib/

# 打包

cd /root/.jenkins/workspace/jsdoctor/jsdoctor-platform-admin/target/jsdoctor-platform-admin-1.0-snapshot

zip -q -r jsdoctor-platform-admin.war ./*

mv jsdoctor-platform-admin.war /root/.jenkins/workspace/jsdoctor/jsdoctor-platform-admin/target

SEO之怎樣減小網頁體積

一 常見的格式 可在網頁上顯示的常見的格式有gif,jpg或jpeg,png,bmp等。1.gif 圖形交換格式 gif以8位顏色或256色顏色儲存單個影象資料或多個影象資料 gif動畫 gif影象格式是無失真壓縮格式,支援透明度 壓縮 交錯和動畫。常見的qq動畫表情就是gif動畫,gif格式適用於...

linux gcc 靜態編譯 減小體積

眾所周知,gcc編譯的原始程式一般很大,其實有幾種方法能大大減小目標 的體積,一般有以下幾種方法。1 禁用除錯資訊 release編譯時不要加上 g開關。2 使用 os編譯程式。不要使用 funroll loops等可以加速程式執行但是會大大增加目標 體積的開關。3 編譯後的程式使用strip去除符...

減小Gcc編譯程式的體積

眾所周知,gcc編譯的原始程式一般很大,其實有幾種方法能大大減小目標 的體積,一般有以下幾種方法。1 禁用除錯資訊 release編譯時不要加上 g開關。2 使用 os編譯程式。不要使用 funroll loops等可以加速程式執行但是會大大增加目標 體積的開關。3 編譯後的程式使用strip去除符...