Springboot jar 打包脚本和启动脚本
說明:
SpringBoot極大的提高了工作效率,集成了各大廠優秀的組件,好處就不多說了,使用配置也非常方便,本文主要講解如何使用更方便的方式打包發布,利用SpringBoot的新特性內置tomcat,打包jar發布,因為真的很方便不用管tomcat了,自從用了新的方式再也回不去了...
但是如果不做一些調整直接使用SpringBoot打包jar部署,會有很多不方便的地方,首先文件包含全部,每次上傳到服務器不方便,其次,更新配置文件或者更新靜態html、js、css等都會需要重新打包,那么我們需要做的事情就是分離這一部分更新頻率很低的文件js、css、html、lib包,每次發布只打包業務代碼。
步驟一:
pom文件添加插件
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>xx.xx.AdminApplication</mainClass>
<layout>ZIP</layout>
<includes>
<include>
<groupId>nothing</groupId><!--打包時排除jar-->
<artifactId>nothing</artifactId><!--打包時排除jar-->
</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<excludes>
<exclude>statics/</exclude><!--打包時排除springboot靜態文件目錄-->
<exclude>public/</exclude><!--打包時排除springboot公共文件目錄-->
<exclude>templates/</exclude><!--打包時排除springboot頁面模板目錄-->
</excludes>
<archive>
<manifest>
<addClasspath>false</addClasspath>
<!--<classpathPrefix>lib/</classpathPrefix>-->
<mainClass>xx.xx.AdminApplication</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<!-- 跳過單元測試 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
做完這件事后,再執行package是不是最終生成的目錄很小了。那么接下來還需要把那些被排除的文件整合到一起發布,這里我沒有使用maven的方式去操作,因為要寫很多代碼,pom文件有點亂,決定用簡單的方式,自己寫一個bat文件去構建目錄,最大的好處是靈活性很高,簡潔。
步驟二:
build.bat,自己寫目錄構建腳本
del /q application\*.*
call mvn clean package --settings L:\SofteWare\apache-maven-3.0.5\conf\setting.xml -Dmaven.test.skip=true
md application\BOOT-INF\classes
md application\lib
copy /y src\main\resources application\BOOT-INF\classes
ROBOCOPY /E src\main\resources\templates application\BOOT-INF\classes\templates
ROBOCOPY /E src\main\resources\statics application\BOOT-INF\classes\statics
ROBOCOPY /E src\main\resources\public application\BOOT-INF\classes\public
copy /y target\customs-admin.jar application
copy /y target\lib\*.jar application\lib\
copy /y startBoot.bat application
copy /y startBoot.sh application
ROBOCOPY src/main/resources/mapper application/BOOT-INF/classes/mapper /E
pause;
最終生成的目錄如下
配置文件和頁面靜態資源全部在BOOT-INF,如下
至此直接運行windows是startBoot.bat,linux是startBoot.sh腳本。分離以后更新版本只需要替換外面的customs-admin.jar即可。
window的bat我寫的比較簡單
echo update config...
jar uf customs-admin.jar BOOT-INF/classes/
echo success!!!
echo start jar...
L:\SofteWare\java_1.8\bin\java -Dloader.path=lib/ -jar ./customs-admin.jar
Linux的用的多,這里是我寫的一個啟動腳本,核心內容忘記在哪里下載的了,抱歉,后面我做了一些調整,所有腳本里面的一些配置路徑需要修改一下,主要是maven的setting和jdk
PS:碼云springboot2.0通用權限系統腳手架同步更新 https://gitee.com/shenxingping/XPBoot
總結
以上是生活随笔為你收集整理的Springboot jar 打包脚本和启动脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bzoj 5092 分割序列 —— 高维
- 下一篇: recovery.sh