温馨提示×

CentOS Java项目部署有哪些步骤

小樊
42
2025-10-04 20:37:39
栏目: 编程语言

CentOS Java项目部署通用步骤

1. 准备Java运行环境(JDK安装与配置)

Java项目运行的基础是JDK(Java Development Kit),需先在CentOS上安装并配置JDK。

  • 安装JDK:使用yum包管理器安装OpenJDK(推荐,免费且稳定),例如安装OpenJDK 11:
    sudo yum update -y && sudo yum install java-11-openjdk-devel -y
    
  • 验证安装:通过以下命令检查JDK版本,确认安装成功:
    java -version  # 查看Java运行时版本
    javac -version # 查看Java编译器版本(若安装的是JDK而非JRE)
    
  • 配置环境变量(可选但推荐):编辑/etc/profile文件,添加以下内容(替换为实际JDK路径):
    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk  # JDK安装路径
    export PATH=$JAVA_HOME/bin:$PATH               # 将JDK加入PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar  # 类路径配置
    
    保存后执行source /etc/profile使配置生效。

2. 上传Java项目到服务器

将本地开发完成的Java项目传输至CentOS服务器,常用工具为scp(安全复制):

# 示例:将本地的my-java-project目录上传至服务器的/opt/deploy目录
scp -r /local/path/to/my-java-project user@your-server-ip:/opt/deploy

若项目为Maven/Gradle工程,需确保pom.xml(Maven)或build.gradle(Gradle)文件完整,以便后续编译。

3. 编译与打包Java项目

根据项目类型(普通Java应用/Web应用)选择编译方式:

  • 普通Java应用(生成JAR包)
    • 若使用Maven,在项目根目录执行:
      mvn clean package  # 清理旧编译文件并打包,生成的JAR在target目录
      
    • 若使用Gradle,在项目根目录执行:
      gradle build       # 构建项目,生成的JAR在build/libs目录
      
  • Web应用(生成WAR包)
    Web应用需打包为WAR(Web Archive)格式,同样使用Maven/Gradle:
    • Maven:mvn clean package(生成的WAR在target目录);
    • Gradle:gradle war(生成的WAR在build/libs目录)。

4. 部署应用(根据项目类型选择)

  • 普通Java应用(JAR包)
    将生成的JAR文件上传至服务器目标目录(如/opt/apps),使用java -jar命令运行:
    cd /opt/apps
    nohup java -jar my-java-app.jar &  # 后台运行,输出日志至nohup.out
    
  • Web应用(WAR包)
    若使用Tomcat等Servlet容器,将WAR文件复制到Tomcat的webapps目录(如/opt/apache-tomcat-9.0.52/webapps),Tomcat会自动解压并部署:
    sudo cp /opt/deploy/my-webapp.war /opt/apache-tomcat-9.0.52/webapps/
    
    部署完成后,Tomcat会在webapps目录下生成对应的解压文件夹(如my-webapp)。

5. 启动相关服务

  • 普通Java应用:若使用nohup命令,应用会在后台持续运行;如需停止,可通过ps -ef | grep java找到进程ID,再用kill -9 <PID>终止。
  • Tomcat服务:启动Tomcat的startup.sh脚本(位于bin目录):
    /opt/apache-tomcat-9.0.52/bin/startup.sh
    
    关闭服务则执行shutdown.sh

6. 验证部署结果

  • 普通Java应用:查看nohup.out日志文件,确认无报错信息:
    tail -f /opt/apps/nohup.out
    
  • Web应用:打开浏览器,访问http://your-server-ip:8080/your-app-context-path(如http://192.168.1.100:8080/my-webapp),若看到应用首页则部署成功。

7. 配置防火墙(可选但重要)

若应用需要对外提供服务,需开放对应端口(如Tomcat的8080端口):

sudo firewall-cmd --permanent --add-port=8080/tcp  # 永久开放8080端口
sudo firewall-cmd --reload                        # 重新加载防火墙规则

若使用SELinux,需调整其策略(测试环境可临时关闭):

sudo setenforce 0  # 关闭SELinux(重启后失效)

生产环境建议配置SELinux规则而非直接关闭。

8. 可选优化步骤

  • 配置开机自启动:使用systemd创建服务单元文件,确保应用随服务器重启自动启动。例如,创建/etc/systemd/system/my-java-app.service文件,内容如下:
    [Unit]
    Description=My Java Application
    After=syslog.target network.target
    
    [Service]
    User=appuser     # 运行应用的系统用户(建议使用非root)
    ExecStart=/usr/bin/java -jar /opt/apps/my-java-app.jar
    Restart=on-failure  # 失败时自动重启
    
    [Install]
    WantedBy=multi-user.target
    
    执行以下命令启用并启动服务:
    sudo systemctl daemon-reload
    sudo systemctl start my-java-app
    sudo systemctl enable my-java-app
    
  • JVM调优:根据服务器配置调整JVM内存参数(如-Xms初始堆内存、-Xmx最大堆内存),例如:
    nohup java -Xms512m -Xmx1024m -jar my-java-app.jar &
    
  • 日志管理:使用logrotate工具定期归档应用日志,避免日志文件过大。

以上步骤覆盖了CentOS上Java项目部署的核心流程,具体操作可根据项目类型(普通Java应用/Web应用)、构建工具(Maven/Gradle)及环境需求(如是否需要数据库连接)进行调整。

0