springboot 打包_springboot打包-体积太大怎么办
springcloud項目打包動輒100多兆,在文件上傳部署的時候非常耗時,多數情況下是毫無意義的耗時,因為依賴包很多情況下不需要改變,只是修改了業務邏輯,那么每次打包上傳的時間都浪費了,尤其在開發環境下,需要快速部署啟動測試,那么減少依賴包提高效率非常必要;
springboot項目因為他默認打包了所有依賴的jar包。此時就可以通過maven-dependency-plugin插件將依賴包復制到獨立的文件夾,在啟動jar包的時候引用即可。
maven-compiler-plugin 1.81.8UTF-8${project.basedir}/src/main/resources/liborg.springframework.boot spring-boot-maven-plugin com.xxx.XXXXApplicationZIP${project.groupId} ${project.artifactId} org.apache.maven.plugins maven-dependency-plugin cdnpackagecopy-dependenciesjarjarruntime${project.build.directory}/libsorg.apache.maven.plugins maven-surefire-plugin 2.22.2true${project.basedir}/src/main/resources/lib${project.build.directory}/libs/**/*.jar**/*.properties${project.basedir}/src/main/resources/config/**src/main/resources**/*.properties**/*.xml**/*.html${project.basedir}/src/main/resources/config/**/*.propertiesfalsesrc/main/resources/config/${profiles.active}/BOOT-INF/classes/**/*.properties**/*.htmlsrc/main/java**/*.properties**/*.xmlfalse重點關注以下這段
org.apache.maven.plugins maven-dependency-plugin cdnpackagecopy-dependenciesjarjarruntime${project.build.directory}/libsmaven-dependency-plugin:插件在打包的時候會在自定義目錄(${project.build.directory}/libs)下生成所有依賴包。
單獨提出依賴包,那么springboot項目啟動肯定是需要有額外配置的,不然不能正常啟動,所有啟動命令中需要添加-Dloader.path=libs/,即為java -Dloader.path=libs/ -jar demo.jar
如果使用Jenkins打包上傳怎么全量更新依賴包呢?
jenkins在Jenkins中編譯完成后需要把${project.build.directory}/libs生成的jar文件上傳到服務器,那就需要build后添加Post Steps
添加Execute shell ,即添加shell腳本打包命令
cd demo/target/libs
tar -cvf demo.tar *.jar
然后需要Post Steps中添加Send files or execute commands over SSH
也就是發送文件或者執行shell命令
Source files :demo/target/libs/demo-libs.tar
Remove prefix:demo/target/libs
Remote directory:
Exec command:
cd /home/demo/jar
if [ ! -d "demo-libs-tmp" ]; then
mkdir demo-libs-tmp
fi
tar -xvf demo-libs.tar -C demo-libs-tmp
rm -f demo-libs.tar
圖一
圖二
這樣配置下,啟動腳本中修改啟動命令即OK
java -Dloader.path=libs/ -jar demo.jar
總結
以上是生活随笔為你收集整理的springboot 打包_springboot打包-体积太大怎么办的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python怎么输入一个数字并调用_Py
- 下一篇: nas硬盘装在电脑上(笔记本硬盘做nas