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

SpringBoot打包為外部配置包的技巧分享

 更新時(shí)間:2025年10月18日 16:45:07   作者:盹貓  
在SpringBoot開(kāi)發(fā)時(shí),在項(xiàng)目開(kāi)發(fā)完成后,打包發(fā)布是必不可少的過(guò)程(jar,原生執(zhí)行文件,dockerfile等),但打包也是有一些技巧存在的,本篇文章就是記錄打包為外部配置包的技巧,需要的朋友可以參考下

前言

在SpringBoot開(kāi)發(fā)時(shí),在項(xiàng)目開(kāi)發(fā)完成后,打包發(fā)布是必不可少的過(guò)程(jar,原生執(zhí)行文件,dockerfile等),但打包也是有一些技巧存在的,面對(duì)紛繁復(fù)雜的部署環(huán)境,我們不能只會(huì)打一個(gè)jar包,更要懂得在如何部署時(shí)更方便運(yùn)行和修改。

環(huán)境準(zhǔn)備

版本

名稱版本
JDK21
SpringBoot3.5.6

注:這里也可以是其它版本,不強(qiáng)制要求。

方法

復(fù)制配置(安裝等)文件

有人可能會(huì)說(shuō)了,復(fù)制文件,這有什么技巧,我直接復(fù)制不就行了(有手就行)。如果是這樣,你可能有些out了,既然是用Maven命令打包jar包當(dāng)然是希望在打包的過(guò)程中復(fù)制文件到目標(biāo)目錄了。

首先需要在pom中添加maven-resources-plugin依賴,內(nèi)容如下:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.3.1</version>
    <executions>
        <execution> <!-- 復(fù)制配置文件 -->
            <id>copy-resources</id>
            <phase>package</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <resources>
                    <resource>
                        <directory>src/main/resources</directory>
                        <includes>
                            <include>application.yml</include>
                            <include>application-*.yml</include>
                            <include>install.sh</include>
                        </includes>
                    </resource>
                </resources>
                <outputDirectory>${project.build.directory}</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

在上述pom文件中實(shí)現(xiàn)的功能是:

當(dāng)運(yùn)行mvn pakage命令時(shí),將src/main/resources 目錄下的

  • application.yml
  • application-*.yml
  • install.sh

文件復(fù)制到目標(biāo)${project.build.directory}(target)目錄下。

這樣再有一些其它文件需要跟隨打包的jar包一起復(fù)制時(shí),只需要修改pom文件即可。

安裝服務(wù)

這里有個(gè)install.sh文件也一起復(fù)制過(guò)去的作用是:

可以快速的安裝當(dāng)前jar包為服務(wù),畢竟誰(shuí)也不想每次都使用java命令啟動(dòng)程序,這很不方便。

腳本內(nèi)容如下:

#! /bin/sh

WORD_DIR=$(cd $(dirname $0); pwd)
SERVICE_NAME="cat-service"

# 檢查是否為 root 用戶
if [ "$(id -u)" -ne 0 ]; then
  echo "提示: 建議使用 root 用戶執(zhí)行此腳本,否則可能權(quán)限不足!"
  read -p "繼續(xù)?(y/n) " -n 1 -r
  if [[ ! $REPLY =~ ^[Yy]$ ]]; then
    exit 1
  fi
  echo
fi

# 當(dāng)前目錄直接搜索(不含子目錄)
jar_files=(*.jar)

if [ ${#jar_files[@]} -eq 0 ]; then
  echo "當(dāng)前目錄無(wú) JAR 文件!"
  exit 1
fi

# 遍歷結(jié)果
for jar in "${jar_files[@]}"; do
  echo "找到 JAR 文件: $jar"
done

# 寫(xiě)文件
# 生成 Systemd 服務(wù)文件內(nèi)容
SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
cat << EOF | sudo tee "$SERVICE_FILE" > /dev/null
[Unit]
Description=${SERVICE_NAME}
After=syslog.target

[Service]
User=$USER
WorkingDirectory=${WORD_DIR}
ExecStart=java -jar ${jar_files}
SuccessExitStatus=143
Restart=on-failure
RestartSec=10s
Environment=SPRING_PROFILES_ACTIVE=prod

[Install]
WantedBy=multi-user.target
EOF

# 重載 Systemd 并啟動(dòng)服務(wù)
sudo systemctl daemon-reload
sudo systemctl enable "$SERVICE_NAME"
sudo systemctl start "$SERVICE_NAME"

# 驗(yàn)證服務(wù)狀態(tài)
echo "服務(wù)已安裝!執(zhí)行以下命令查看狀態(tài):"
echo "sudo systemctl status $SERVICE_NAME"

腳本里只需要修改下服務(wù)的名稱即可使用,拿來(lái)就用。

總結(jié)

這里只是舉了一個(gè)簡(jiǎn)單的例子,通過(guò)使用maven-resources-plugin依賴去復(fù)制配置文件和相關(guān)自定義的快速安裝程序,即可完成JAR包的外部配置和快速啟動(dòng)。

當(dāng)然,這不是規(guī)定,你也可以自己去創(chuàng)建一些其它快速部署的腳本進(jìn)行項(xiàng)目的快速部署和啟動(dòng)。

以上就是SpringBoot打包為外部配置包的技巧分享的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot外部配置打包的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

延长县| 齐齐哈尔市| 黄陵县| 呼玛县| 麻江县| 阳朔县| 祁门县| 澎湖县| 长治市| 礼泉县| 东平县| 余干县| 铜梁县| 桃江县| 错那县| 沁源县| 东宁县| 肇源县| 伊春市| 务川| 东莞市| 秭归县| 泉州市| 玉龙| 竹溪县| 故城县| 武平县| 新安县| 榆中县| 门头沟区| 古浪县| 甘孜| 芮城县| 沙湾县| 江永县| 镇康县| 新田县| 乳源| 焦作市| 从江县| 宜州市|