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