在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项目。根据具体需求,你还可以配置热部署和自动化部署,以提高开发效率。