SpringBoot項(xiàng)目使用maven-assembly-plugin插件多環(huán)境打包
1.創(chuàng)建SpringBoot項(xiàng)目并在pom.xml文件中添加maven-assembly-plugin配置
<!-- 多環(huán)境配置 -->
<profiles>
<!-- 開(kāi)發(fā)環(huán)境 -->
<profile>
<id>dev</id>
<properties>
<profileActive>dev</profileActive>
</properties>
<!-- 默認(rèn)激活的環(huán)境 -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 生產(chǎn)環(huán)境 -->
<profile>
<id>prod</id>
<properties>
<profileActive>prod</profileActive>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
</profiles>
<build>
<!-- 打包后的jar包名稱 -->
<finalName>spring-boot-demo</finalName>
<!-- 打包配置 -->
<plugins>
<!-- maven 打包時(shí)跳過(guò)測(cè)試 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- <!– 指定該Main Class為全局的唯一入口 –>-->
<!-- <mainClass>com.xhs.ToolsApp</mainClass> -->
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
<executions>
<execution>
<goals>
<!--可以把依賴的包都打包到生成的Jar包中-->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 個(gè)性化打包 -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<!-- 打包文件名字不包含 assembly.xml 中 id -->
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>src/main/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<!-- 資源配置 -->
<resources>
<resource>
<directory>src/main/java</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>*.yml</include>
<include>*.xml</include>
</includes>
</resource>
</resources>
</build>
2.創(chuàng)建 在src/main/assembly目錄下創(chuàng)建assembly.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<assembly>
<!-- 打包文件名的標(biāo)識(shí)符,用來(lái)做后綴-->
<id>make-assembly</id>
<!-- 打包的類型,如果有N個(gè),將會(huì)打N個(gè)類型的包 -->
<formats>
<format>tar.gz</format>
<format>zip</format>
</formats>
<!-- 壓縮包下是否生成和項(xiàng)目名相同的根目錄 -->
<includeBaseDirectory>true</includeBaseDirectory>
<!-- 用來(lái)設(shè)置一組文件在打包時(shí)的屬性。-->
<fileSets>
<!-- 0755->即用戶具有讀/寫(xiě)/執(zhí)行權(quán)限,組用戶和其它用戶具有讀寫(xiě)權(quán)限;-->
<!-- 0644->即用戶具有讀寫(xiě)權(quán)限,組用戶和其它用戶具有只讀權(quán)限;-->
<!-- 將src/bin目錄下的jar啟動(dòng)腳本輸出到打包后的目錄中 -->
<fileSet>
<directory>${basedir}/src/main/bin</directory>
<outputDirectory>${file.separator}</outputDirectory>
<fileMode>0755</fileMode>
<includes>
<include>**.sh</include>
<include>**.bat</include>
</includes>
</fileSet>
<!-- 把項(xiàng)目的配置文件,打包進(jìn)壓縮文件的config目錄 -->
<fileSet>
<directory>${basedir}/src/main/resources</directory>
<outputDirectory>config</outputDirectory>
<fileMode>0644</fileMode>
<includes>
<include>*.properties</include>
<include>*.yml</include>
<include>*.xml</include>
</includes>
</fileSet>
<!-- 把項(xiàng)目自己編譯出來(lái)的jar文件,打包進(jìn)zip文件的根目錄 -->
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>${file.separator}</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
</fileSets>
</assembly>
3.在src/main/bin創(chuàng)建在linux環(huán)境啟動(dòng)jar包的腳本
#!/bin/bash
# jar包名稱
JAR_FILE="spring-boot-demo.jar"
# pid 名稱
PID_FILE="spring-boot-demo.pid"
start() {
if [ -f "$PID_FILE" ]; then
echo "應(yīng)用程序已在運(yùn)行,PID: $(cat $PID_FILE) .........."
else
# 后臺(tái)啟動(dòng)jar包,并將啟動(dòng)日志輸出到log.log文件中
nohup java -jar -Dloader.path=.,3rd-li $JAR_FILE >> log.log 2>&1 &
echo $! > $PID_FILE
echo "應(yīng)用程序已成功啟動(dòng),PID: $(cat $PID_FILE) .........."
fi
}
stop() {
if [ -f "$PID_FILE" ]; then
kill -9 $(cat $PID_FILE)
rm $PID_FILE
echo "應(yīng)用程序已成功停止.........."
else
echo "應(yīng)用程序未運(yùn)行.........."
fi
}
restart() {
echo "正在重啟.........."
stop
start
echo "重啟成功.........."
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "使用: $0 {start|stop|restart} 命令"
exit 1
;;
esac
4.配置application.yml文件
#application.yml
spring:
profiles:
active: @profileActive@
#application-dev.yml
server:
port: 8001
spring:
application:
name: spring-boot-demo
#application-prod.yml
server:
port: 8001
spring:
application:
name: spring-boot-demo
5.啟動(dòng)項(xiàng)目
6.打包
mvn clean package -P prod
7.打包后的目錄結(jié)構(gòu)
8.上傳到linux服務(wù)器并啟動(dòng)jar包文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-650196.html
# 解壓tar包
tar -zxf spring-boot-demo.tar.gz
#啟動(dòng)jar包
sh app.sh start
#查看日志
tail -f log.log
9.調(diào)用接口測(cè)試
10.源碼地址
https://gitee.com/xhs101/spring-boot-demo文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-650196.html
到了這里,關(guān)于【Maven】SpringBoot項(xiàng)目使用maven-assembly-plugin插件多環(huán)境打包的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!