在Ubuntu上部署Java項目(以Spring Boot為例)通常涉及以下幾個步驟:
首先,確保你的Ubuntu系統上已經安裝了Java運行環境。你可以使用以下命令安裝OpenJDK 8:
sudo apt-get update
sudo apt-get install openjdk-8-jre
java -version
驗證安裝是否成功,輸出應顯示Java版本信息。
在項目的根目錄下,使用Maven構建項目。這將生成一個可執行的JAR文件。
cd /path/to/your/project
mvn clean package
構建完成后,你會在target
目錄下找到生成的JAR文件,例如springboot-demo.jar
。
將生成的JAR文件上傳到你的Ubuntu服務器。你可以使用scp
命令通過SSH將文件傳輸到服務器:
scp target/springboot-demo.jar username@your_server_ip:/path/to/deploy
在服務器上,使用以下命令啟動Spring Boot應用:
java -jar /path/to/deploy/springboot-demo.jar > /path/to/deploy/log.txt 2>&1 &
這將以守護進程模式運行應用,并將日志輸出到指定的log.txt
文件中。
如果你有前端應用需要與后端Spring Boot應用通信,可以使用Nginx作為反向代理。
sudo apt-get install nginx
sudo systemctl status nginx
創建或編輯Nginx配置文件,通常位于/etc/nginx/conf.d/default.conf
:
sudo nano /etc/nginx/conf.d/default.conf
配置示例:
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /api/ {
proxy_pass http://localhost:8080; # 修改為你的Spring Boot應用端口
}
}
sudo systemctl reload nginx
為了提高開發效率,可以使用熱部署功能。Spring Boot提供了幾種熱部署方式:
你可以使用GitHub Actions等CI/CD工具實現自動化構建和部署。以下是一個簡單的示例:
.github/workflows/deploy.yml
文件在項目根目錄下創建該文件,內容如下:
name: Deploy
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'adopt'
- name: Build with Maven
run: mvn -b package --file pom.xml
- name: Update dependency graph
uses: advanced-security/maven-dependency-submission-action@v3
- name: Delete files
run: sshpass -p ${{ secrets.host_user_password }} ssh -o stricthostkeychecking=no ${{ vars.host_user_name }}@${{ vars.host }} "cd ${{ vars.deploy_path }} && ls ${{ vars.deploy_path }}/* | egrep -v storage | xargs rm -rf"
- name: Upload files
run: sshpass -p ${{ secrets.host_user_password }} scp -r -o stricthostkeychecking=no ./target/springboot-demo.jar ${{ vars.host_user_name }}@${{ vars.host }}:${{ vars.deploy_path }}
- name: Run Java application
run: sshpass -p ${{ secrets.host_user_password }} ssh -o stricthostkeychecking=no ${{ vars.host_user_name }}@${{ vars.host }} "cd ${{ vars.deploy_path }} && /usr/bin/java -jar springboot-demo.jar"
通過以上步驟,你可以在Ubuntu上成功部署Java項目。根據具體需求,你還可以配置熱部署和自動化部署,以提高開發效率。