最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot 增量部署發(fā)布的實(shí)現(xiàn)步驟

 更新時(shí)間:2024年12月22日 14:38:51   作者:清山博客  
本文介紹了通過(guò)拆分項(xiàng)目jar包和使用類加載器實(shí)現(xiàn)Spring Boot的增量部署,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、背景介紹

由于項(xiàng)目依賴的jar越來(lái)越多,Springboot默認(rèn)的打包方式是將整個(gè)項(xiàng)目打包成一個(gè)jar包,每次發(fā)布時(shí),打包后的jar越來(lái)越大,更新一個(gè)很小的功能,需要將整個(gè)jar上傳運(yùn)行。這樣效率太低了,考慮實(shí)現(xiàn)每次發(fā)布時(shí),只發(fā)布修改了的部分,實(shí)現(xiàn)增量發(fā)布。

二、實(shí)現(xiàn)思路

1.將整體打包的jar進(jìn)行拆分:

   拆為引用的libresource(靜態(tài)資源)兩部分(準(zhǔn)確說(shuō)是三部分,還包括當(dāng)前項(xiàng)目的jar) 

2.通過(guò)命令:java -Dloader.path=./lib,./resource -jar demo-exec.jar 來(lái)指定資源路徑運(yùn)行。

三、實(shí)現(xiàn)步驟

1.打包當(dāng)前web項(xiàng)目

打包當(dāng)前web項(xiàng)目時(shí),排除引用的jar,只打包成可運(yùn)行的jar。

修改項(xiàng)目pom.xml文件,在build->plugins里增加:

<!--1.打包當(dāng)前web項(xiàng)目-->
<plugin>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-maven-plugin</artifactId>
	<configuration>
		<!-- 指定該jar包啟動(dòng)時(shí)的主類-->
		<mainClass>com.rc114.bms.RbApplication</mainClass>

		<!-- 模塊打包需要增加這個(gè)配置,帶exec的為可執(zhí)行jar,不帶的為可引用jar-->
		<classifier>exec</classifier>
		<includeSystemScope>true</includeSystemScope>

		<!--必須為ZIP模式,不指定的話-Dloader.path不生效-->
		<layout>ZIP</layout>

		<!-- 打包的時(shí)候排除的jar包-->
		<includes>
			<include>
				<groupId>non-exists</groupId>
				<artifactId>non-exists</artifactId>
			</include>
		</includes>
	</configuration>
</plugin>

注意:這里使用的是 spring-boot-maven-plugin 插件。

2.打包依賴項(xiàng)lib

修改項(xiàng)目pom.xml文件,在build->plugins里增加:

<!--2.打包依賴項(xiàng)-->
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-dependency-plugin</artifactId>
	<version>3.2.0</version> <!-- 使用適合你的版本 -->
	<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>

注意:這里使用的是 maven-dependency-plugin 插件。

完整的 build 配置:

<build>
	<plugins>
		<!--1.打包當(dāng)前web項(xiàng)目-->
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<configuration>
				<!-- 指定該jar包啟動(dòng)時(shí)的主類-->
				<mainClass>com.rc114.bms.RbApplication</mainClass>

				<!-- 模塊打包需要增加這個(gè)配置,帶exec的為可執(zhí)行jar,不帶的為可引用jar-->
				<classifier>exec</classifier>
				<includeSystemScope>true</includeSystemScope>

				<!--必須為ZIP模式,不指定的話-Dloader.path不生效-->
				<layout>ZIP</layout>

				<!-- 打包的時(shí)候排除的jar包-->
				<includes>
					<include>
						<groupId>non-exists</groupId>
						<artifactId>non-exists</artifactId>
					</include>
				</includes>
			</configuration>
		</plugin>

		<!--2.打包依賴項(xiàng)-->
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-dependency-plugin</artifactId>
			<version>3.2.0</version> <!-- 使用適合你的版本 -->
			<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>
	</plugins>
</build>

執(zhí)行maven打包命令,打包完后,將得到這樣的結(jié)果:

3.復(fù)制resource文件夾

直接復(fù)制項(xiàng)目里的src\main\resources文件夾到準(zhǔn)備發(fā)布目錄即可。

4.上傳更新文件

 將上面的lib目錄和***-exec.jar和網(wǎng)站項(xiàng)目下src\main\resources目錄復(fù)制到一起,大概像這樣:

將上面目錄上傳到服務(wù)器,然后執(zhí)行命令:

 java -Dloader.path=./lib,./resource -jar rc_web_rb-0.0.1-exec.jar

即可運(yùn)行Springboot項(xiàng)目。

四、增量發(fā)布的好處

進(jìn)行增量打包后:

1.如果前端有修改時(shí),可以對(duì)resource中的文件進(jìn)行替換,且不用重啟服務(wù)。

2.如果后端有修改,要看是web項(xiàng)目修改還是引用的jar修改:

(1)如果是web項(xiàng)目有修改,只用更新項(xiàng)目****-exec.jar即可(需重新執(zhí)行啟動(dòng)命令)。

(2)如果是引用的jar包有修改,只需將變動(dòng)的jar包上傳至lib文件夾即可。

附:Springboot啟動(dòng)腳本

#!/bin/sh
#路徑
APP_LIB=/***/lib
APP_RESOURCE=/***/resources
APP_NAME=/***/rc_web_rb-0.0.1-exec.jar
APP_LOG=/***/rc_web_rb-0.0.1.log

# 查詢是否有原進(jìn)程
tpid1=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
# 如果此進(jìn)程已經(jīng)啟動(dòng),則先殺掉
if [ $tpid1 ]; then
kill -9 $tpid1
fi

# 啟動(dòng)項(xiàng)目jar包,java命令寫(xiě)成了絕對(duì)路徑,因?yàn)橄到y(tǒng)啟動(dòng)的時(shí)候是不識(shí)別環(huán)境變量的
# 日志文件也寫(xiě)成了絕對(duì)路徑,不然日志會(huì)輸出在init.d目錄
nohup /usr/lib/jvm/jdk-17.0.2/bin/java -Dloader.path=$APP_LIB,$APP_RESOURCE -Dspring.profiles.active=pro -jar $APP_NAME -> $APP_LOG 2>&1 &

修改對(duì)應(yīng)參數(shù),將腳本保存為start.sh,切換到腳本所在目錄,執(zhí)行:./start.sh 即可啟動(dòng)項(xiàng)目。

到此這篇關(guān)于SpringBoot 增量部署發(fā)布的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)SpringBoot 增量部署發(fā)布內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

最新評(píng)論

新化县| 兰考县| 宁武县| 新竹市| 东至县| 金溪县| 蕲春县| 安福县| 武穴市| 介休市| 罗平县| 梅州市| 蓝山县| 遵化市| 永善县| 临朐县| 原平市| 柘城县| 佛教| 景泰县| 长武县| 肥西县| 江城| 宁都县| 乌苏市| 溧阳市| 新丰县| 马公市| 怀来县| 吉安市| 遵义县| 凤山市| 天津市| 阳谷县| 理塘县| 革吉县| 灵丘县| 北票市| 太仆寺旗| 梁山县| 永丰县|