# 更新系统
sudo yum update -y # CentOS
sudo apt update && sudo apt upgrade -y # Ubuntu
# 安装JDK (SpringBoot需要)
sudo yum install java-11-openjdk-devel -y # CentOS
sudo apt install openjdk-11-jdk -y # Ubuntu
# 安装Node.js (Vue项目需要)
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash - # CentOS
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - # Ubuntu
sudo yum install nodejs -y # CentOS
sudo apt install nodejs -y # Ubuntu
# 安装Maven (SpringBoot项目构建)
sudo yum install maven -y # CentOS
sudo apt install maven -y # Ubuntu
# 安装Git
sudo yum install git -y # CentOS
sudo apt install git -y # Ubuntu
# 安装Nginx (前端部署)
sudo yum install nginx -y # CentOS
sudo apt install nginx -y # Ubuntu
# CentOS
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum install jenkins -y
# Ubuntu
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install jenkins -y
sudo systemctl start jenkins
sudo systemctl enable jenkins
http://<服务器IP>:8080
bash
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
# 构建命令
clean install -DskipTests
#!/bin/bash
# 停止旧服务
PID=$(ps -ef | grep "your-springboot-app.jar" | grep -v grep | awk '{print $2}')
if [ -n "$PID" ]; then
kill -9 $PID
fi
# 备份旧版本
TIMESTAMP=$(date +%Y%m%d%H%M%S)
cp /path/to/deploy/your-springboot-app.jar /path/to/backup/your-springboot-app.jar.$TIMESTAMP
# 复制新版本
cp target/your-springboot-app.jar /path/to/deploy/
# 启动新服务
nohup java -jar /path/to/deploy/your-springboot-app.jar --spring.profiles.active=prod > /path/to/logs/app.log 2>&1 &
# 安装依赖
npm install
# 构建生产环境代码
npm run build
#!/bin/bash
# 备份旧版本
TIMESTAMP=$(date +%Y%m%d%H%M%S)
tar -czf /path/to/backup/dist_$TIMESTAMP.tar.gz /usr/share/nginx/html/dist
# 部署新版本
rm -rf /usr/share/nginx/html/dist/*
cp -r dist/* /usr/share/nginx/html/dist/
server {
listen 80;
server_name your-domain.com;
location / {
root /usr/share/nginx/html/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
# API代理配置(如果前端需要访问后端API)
location /api/ {
proxy_pass http://localhost:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
pipeline {
agent any
environment {
DEPLOY_PATH = '/path/to/deploy'
JAR_NAME = 'your-springboot-app.jar'
}
stages {
stage('Checkout') {
steps {
git branch: 'main', url: 'https://github.com/your-repo/springboot-project.git'
}
}
stage('Build') {
steps {
sh 'mvn clean package -DskipTests'
}
}
stage('Deploy') {
steps {
sh '''
# 停止旧服务
PID=$(ps -ef | grep "$JAR_NAME" | grep -v grep | awk '{print $2}')
if [ -n "$PID" ]; then
kill -9 $PID
fi
# 备份
TIMESTAMP=$(date +%Y%m%d%H%M%S)
cp $DEPLOY_PATH/$JAR_NAME $DEPLOY_PATH/backup/$JAR_NAME.$TIMESTAMP
# 部署新版本
cp target/$JAR_NAME $DEPLOY_PATH/
# 启动服务
nohup java -jar $DEPLOY_PATH/$JAR_NAME --spring.profiles.active=prod > $DEPLOY_PATH/logs/app.log 2>&1 &
'''
}
}
}
}
pipeline {
agent any
environment {
NGINX_ROOT = '/usr/share/nginx/html'
}
stages {
stage('Checkout') {
steps {
git branch: 'main', url: 'https://github.com/your-repo/vue-project.git'
}
}
stage('Install Dependencies') {
steps {
sh 'npm install'
}
}
stage('Build') {
steps {
sh 'npm run build'
}
}
stage('Deploy') {
steps {
sh '''
# 备份
TIMESTAMP=$(date +%Y%m%d%H%M%S)
tar -czf $NGINX_ROOT/backup/dist_$TIMESTAMP.tar.gz $NGINX_ROOT/dist
# 部署
rm -rf $NGINX_ROOT/dist/*
cp -r dist/* $NGINX_ROOT/dist/
'''
}
}
}
}
# 将Jenkins用户加入sudoers
sudo visudo
# 添加以下内容
jenkins ALL=(ALL) NOPASSWD: ALL
# 使用n管理Node版本
sudo npm install -g n
sudo n stable
# 查看端口占用
netstat -tulnp | grep 8080
# 修改Jenkins端口
sudo vi /etc/default/jenkins
# 修改HTTP_PORT=8080为其他端口
# 修改Maven内存设置
export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=512m"
通过以上步骤,您应该能够在云服务器上成功使用Jenkins部署SpringBoot和Vue项目。根据实际项目需求,您可能需要调整部分配置。