温馨提示×

CentOS Java如何进行项目部署

小樊
33
2025-11-21 18:34:09
栏目: 编程语言

CentOS 上 Java 项目部署全流程

一 环境准备

  • 安装 JDK(以 OpenJDK 8 为例):执行 sudo yum install java-1.8.0-openjdk-devel -y,完成后用 java -versionjavac -version 验证。若需 OpenJDK 11,可用 sudo yum install java-11-openjdk-devel -y
  • 配置环境变量(可选但推荐):编辑 /etc/profile/etc/profile.d/java.sh,加入
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
    export PATH=$JAVA_HOME/bin:$PATH
    执行 source /etc/profile 生效。
  • 如需 Web 容器,安装 Tomcat 9
    wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.53/bin/apache-tomcat-9.0.53.tar.gz
    tar -xvf apache-tomcat-9.0.53.tar.gz -C /opt
    设置 CATALINA_HOME=/opt/apache-tomcat-9.0.53 并加入 PATH,便于随处启动。
  • 防火墙放行端口(Tomcat 默认 8080):
    sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload

二 构建与上传

  • 构建方式
    • Maven:在项目根目录执行 mvn clean package,产物在 target/xxx.jar
    • Gradle:在项目根目录执行 gradle build,产物在 build/libs/xxx.jar
    • 无构建工具:用 javac 编译后 jar cvfe app.jar com.example.Main -C bin . 打包。
  • 上传到服务器
    • 上传可执行 JARscp target/app.jar user@your_ip:/opt/app/
    • 上传 WAR(Tomcat):scp target/app.war user@your_ip:/opt/apache-tomcat-9.0.53/webapps/
  • 建议目录结构:/opt/app/(应用)、/opt/logs/(日志)、/opt/conf/(配置)。

三 运行与进程管理

  • 直接运行(前台,便于调试)
    • cd /opt/app && java -jar app.jar
    • 后台运行:nohup java -jar app.jar > /opt/logs/app.log 2>&1 &
  • 使用 systemd 托管(推荐,支持开机自启与自动重启)
    新建服务:sudo vi /etc/systemd/system/myapp.service,内容示例:
    [Unit]
    Description=My Java Application
    After=syslog.target network.target
    
    [Service]
    User=appuser
    WorkingDirectory=/opt/app
    ExecStart=/usr/bin/java -jar /opt/app/app.jar
    SuccessExitStatus=143
    Restart=on-failure
    RestartSec=10
    Environment="JAVA_OPTS=-Xms512m -Xmx1g"
    
    [Install]
    WantedBy=multi-user.target
    
    启用与启动:
    sudo systemctl daemon-reload && sudo systemctl start myapp && sudo systemctl enable myapp
    查看状态与日志:
    sudo systemctl status myappjournalctl -u myapp -f

四 Web 应用部署 Tomcat

  • 部署 WAR:将 target/app.war 复制到 $CATALINA_HOME/webapps/,Tomcat 会自动解压部署。
  • 启动与验证:
    $CATALINA_HOME/bin/startup.shsystemctl start tomcat(若已配置为服务)
    访问:http://your_server_ip:8080/app(上下文路径即 WAR 文件名,若需 ROOT 则重命名为 ROOT.war)。
  • 常用管理:
    • 停止:$CATALINA_HOME/bin/shutdown.sh
    • 热部署:替换 webapps 下 WAR 并重启,或使用 Tomcat Manager。

五 进阶建议

  • 生产参数:在 systemdEnvironment="JAVA_OPTS=..." 中设置堆内存(如 -Xms512m -Xmx1g)、GC 策略、JMX 等;为应用创建专用系统用户(如 appuser)并最小权限运行。
  • 日志与监控:统一输出到 /opt/logs/,结合 journalctl 或日志轮转(logrotate);可按需接入 Prometheus + GrafanaELK
  • 自动化与容器化:使用 Jenkins 流水线拉取代码、构建、上传并重启服务;或编写 Dockerfile 构建镜像,配合 docker run 或编排工具部署,提升一致性与可回滚性。

0