idea實(shí)現(xiàn)一鍵自動(dòng)化部署項(xiàng)目
前言
一鍵自動(dòng)化部署項(xiàng)目是現(xiàn)代軟件開發(fā)中的一種高效實(shí)踐,它帶來(lái)了許多顯著的好處:
- 提高效率:自動(dòng)化部署可以節(jié)省手動(dòng)部署所需的時(shí)間。特別是在頻繁部署的情況下,自動(dòng)化可以顯著減少重復(fù)性工作,讓開發(fā)人員有更多時(shí)間專注于編碼和解決問(wèn)題。
- 減少錯(cuò)誤:手動(dòng)部署過(guò)程容易出錯(cuò),尤其是在復(fù)雜的部署流程中。自動(dòng)化部署可以減少人為錯(cuò)誤,確保每次部署都是一致和可靠的。
- 快速回滾:如果新部署的版本出現(xiàn)問(wèn)題,自動(dòng)化部署流程可以快速回滾到上一個(gè)穩(wěn)定版本,減少系統(tǒng)不可用的時(shí)間。
- 持續(xù)集成和持續(xù)部署(CI/CD):自動(dòng)化部署是CI/CD流程的關(guān)鍵組成部分,它允許開發(fā)團(tuán)隊(duì)快速迭代和發(fā)布新功能,提高軟件交付的速度和質(zhì)量。
- 標(biāo)準(zhǔn)化流程:自動(dòng)化部署有助于標(biāo)準(zhǔn)化部署流程,確保所有團(tuán)隊(duì)成員都遵循相同的步驟和標(biāo)準(zhǔn),這有助于維護(hù)代碼和部署的一致性。
提示:文章一共介紹2種方式,下面案例可供參考
一、 IDEA插件安裝
1. 首先下載 Alibaba Cloud Toolkit 插件

2. 插件下載完成后重啟IDEA

二、SpringBoot項(xiàng)目準(zhǔn)備
1. pom.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.test</groupId>
<artifactId>demo-test</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>demo-test</name>
<description>demo-test</description>
<properties>
<java.version>8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2. controller
package com.test.controller;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("demo")
public class TestController {
/**
* 測(cè)試接口
*
* @param version 版本號(hào)
* @return 版本號(hào)
*/
@GetMapping("query")
public String query(@RequestParam String version) {
System.out.println("打印版本 = " + version);
return version;
}
}
3. 啟動(dòng)類
package com.test;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoTestApplication {
public static void main(String[] args) {
SpringApplication.run(DemoTestApplication.class, args);
}
}

三、SpringBoot項(xiàng)目jar包部署
1. Alibaba Cloud Toolkit 插件服務(wù)器配置

2. 主機(jī) IP、用戶名、密碼 點(diǎn)擊測(cè)試鏈接

3. 編輯項(xiàng)目配置

4. 選擇 Deploy to Host

5. 指定Target Deploy Host 選擇添加主機(jī)IP,勾選剛添加的服務(wù)器

6. 配置服務(wù)器jar包存放目錄

7. 選擇本地要上傳的jar包
- 注意?? 這里一定要本地的絕對(duì)路徑

8. 添加啟動(dòng)命令

9. 配置打包命令
clean package install -Dmaven.test.skip=true

到這里差不多就配置完了,簡(jiǎn)單測(cè)試一下
10. 測(cè)試



11. 部署腳本
服務(wù)器腳本位置
/opt/app/test/deploy/test.sh
test.sh
#!/bin/bash
# 定義程序路徑和文件名的數(shù)組
declare -a APP_SERVER_PATHS=("/opt/app/test/")
declare -a APP_SERVERS=("demo-test-1.0.0-SNAPSHOT.jar")
# 停止并重啟每個(gè)程序
for ((i = 0; i < ${#APP_SERVER_PATHS[@]}; i++)); do
APP_SERVER_PATH=${APP_SERVER_PATHS[$i]}
APP_SERVER=${APP_SERVERS[$i]}
# 查找正在運(yùn)行的Java進(jìn)程的PID
PID=$(ps aux | grep java | grep "$APP_SERVER" | grep -v grep | awk '{print $2}')
if [ -z "$PID" ]; then
echo "demo-test-1.0.0 server application $i is not running."
else
# 殺死進(jìn)程
echo "Stopping demo-test-1.0.0 server application $i (PID: $PID)..."
kill $PID
sleep 5
fi
done
# 確保進(jìn)程已停止后再啟動(dòng)程序
for ((i = 0; i < ${#APP_SERVER_PATHS[@]}; i++)); do
APP_SERVER_PATH=${APP_SERVER_PATHS[$i]}
APP_SERVER=${APP_SERVERS[$i]}
# 啟動(dòng)程序
echo "Starting demo-test-1.0.0 server application $i..."
nohup java -Xms512m -Xmx1024m -Xmn256m -Xss256k -jar "${APP_SERVER_PATH}${APP_SERVER}" --spring.profiles.active=prod > /dev/null 2>&1 &
echo "demo-test-1.0.0 server application $i restarted successfully."
done
修改IDEA 部署腳本

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- 如何用IDEA+Docker一鍵部署項(xiàng)目SpringBoot項(xiàng)目
- idea將Springboot項(xiàng)目打war包部署到tomcat服務(wù)器上實(shí)現(xiàn)步驟
- Java?Web項(xiàng)目打包部署解析之從IDEA配置到Tomcat運(yùn)行
- IDEA實(shí)現(xiàn)一鍵部署項(xiàng)目到服務(wù)器過(guò)程
- IDEA開發(fā)并部署運(yùn)行WEB項(xiàng)目全過(guò)程
- idea使用docker插件一鍵部署項(xiàng)目的操作方法
- IDEA如何一鍵部署SpringBoot項(xiàng)目到服務(wù)器
相關(guān)文章
如何實(shí)現(xiàn)java Iterator迭代器功能
這篇文章主要介紹了如何實(shí)現(xiàn)java Iterator迭代器功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
Java實(shí)現(xiàn)圖片翻轉(zhuǎn)以及任意角度旋轉(zhuǎn)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)圖片翻轉(zhuǎn)以及任意角度旋轉(zhuǎn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
MyBatis中多對(duì)一和一對(duì)多數(shù)據(jù)的處理方法
這篇文章主要介紹了MyBatis中多對(duì)一和一對(duì)多數(shù)據(jù)的處理,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01
Java?設(shè)計(jì)模式以虹貓藍(lán)兔的故事講解原型模式
原型模式是用于創(chuàng)建重復(fù)的對(duì)象,同時(shí)又能保證性能。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對(duì)象的最佳方式,今天通過(guò)本文給大家介紹下Java 原型設(shè)計(jì)模式,感興趣的朋友一起看看吧2022-04-04
SpringBoot實(shí)現(xiàn)文件記錄日志及日志文件自動(dòng)歸檔和壓縮
Logback是Java日志框架,通過(guò)Logger收集日志并經(jīng)Appender輸出至控制臺(tái)、文件等,SpringBoot配置logback-spring.xml可實(shí)現(xiàn)日志文件存儲(chǔ),本文給大家介紹了SpringBoot實(shí)現(xiàn)文件記錄日志及日志文件自動(dòng)歸檔和壓縮,需要的朋友可以參考下2025-05-05

