ubuntu

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提供了几种热部署方式:

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
看了该问题的人还看了