在Ubuntu上部署Java项目通常涉及以下几个步骤:
首先,确保你的Ubuntu系统上已经安装了Java运行环境。你可以使用以下命令安装OpenJDK 8:
sudo apt update
sudo apt install openjdk-8-jre
java -version
验证安装是否成功,输出应显示Java版本信息。
在项目的根目录下,使用Maven构建项目。这将生成一个可执行的JAR文件。例如,对于Spring Boot项目,使用以下命令:
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作为反向代理。
安装Nginx:
sudo apt install nginx
配置Nginx:
sudo nano /etc/nginx/conf.d/default.conf
配置示例:
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location /api/ {
proxy_pass http://localhost:8080;
}
}
重启Nginx:
sudo systemctl reload nginx
为了提高开发效率,可以使用热部署功能。Spring Boot提供了几种热部署方式,如Spring Boot Configuration方式、spring-boot-devtools
或JRebel。
你可以使用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 stricthostkeycheckingno {{ vars.host_user_name }}@{{ vars.host }} "cd && ls /* egrep -v storage xargs rm -rf"
- name: Upload files
run: sshpass -p {{ secrets.host_user_password }} scp -r -o stricthostkeycheckingno ./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 stricthostkeycheckingno {{ vars.host_user_name }}@{{ vars.host }} "cd && /usr/bin/java -jar springboot-demo.jar"
通过以上步骤,你可以在Ubuntu上成功部署Java项目。根据具体需求,你还可以配置热部署和自动化部署,以提高开发效率。