溫馨提示×

Java項目Ubuntu上如何部署

小樊
45
2025-04-15 12:58:09
欄目: 編程語言

在Ubuntu上部署Java項目(以Spring Boot為例)通常涉及以下幾個步驟:

1. 安裝Java環境

首先,確保你的Ubuntu系統上已經安裝了Java運行環境。你可以使用以下命令安裝OpenJDK 8:

sudo apt-get update
sudo apt-get install openjdk-8-jre
java -version

驗證安裝是否成功,輸出應顯示Java版本信息。

2. 構建Java項目

在項目的根目錄下,使用Maven構建項目。這將生成一個可執行的JAR文件。

cd /path/to/your/project
mvn clean package

構建完成后,你會在target目錄下找到生成的JAR文件,例如springboot-demo.jar。

3. 部署Java項目

將生成的JAR文件上傳到你的Ubuntu服務器。你可以使用scp命令通過SSH將文件傳輸到服務器:

scp target/springboot-demo.jar username@your_server_ip:/path/to/deploy

4. 啟動Java項目

在服務器上,使用以下命令啟動Spring Boot應用:

java -jar /path/to/deploy/springboot-demo.jar > /path/to/deploy/log.txt 2>&1 &

這將以守護進程模式運行應用,并將日志輸出到指定的log.txt文件中。

5. 配置反向代理(可選)

如果你有前端應用需要與后端Spring Boot應用通信,可以使用Nginx作為反向代理。

安裝Nginx

sudo apt-get install nginx
sudo systemctl status nginx

配置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應用端口
    }
}

重啟Nginx

sudo systemctl reload nginx

6. 熱部署(可選)

為了提高開發效率,可以使用熱部署功能。Spring Boot提供了幾種熱部署方式:

  • Spring Boot Configuration方式:在IntelliJ IDEA中配置,控制編譯和更新的時機。
  • spring-boot-devtools:通過Maven依賴實現,手動觸發編譯和更新。
  • JRebel:一個JVM插件,實時重新加載代碼和資源。

7. 自動化部署(可選)

你可以使用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項目。根據具體需求,你還可以配置熱部署和自動化部署,以提高開發效率。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女