温馨提示×

CentOS如何自动化Java编译

小樊
39
2026-07-21 02:29:27
栏目: 编程语言

CentOS 上实现 Java 编译自动化,常见做法取决于你是单次编译定时编译还是CI/CD 流程。下面按常见场景给你一个完整、实用的方案。


一、准备环境(CentOS)

1. 安装 JDK

# 查看是否已安装
java -version

# 安装 OpenJDK(推荐)
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

如果是 Java 11 / 17:

sudo yum install -y java-11-openjdk java-11-openjdk-devel

二、最基础的自动化:Shell 脚本编译

1. 示例 Java 项目结构

/opt/java-project/
├── src/
│   └── com/example/Hello.java
├── lib/
└── out/

2. 编写自动编译脚本 build.sh

#!/bin/bash

PROJECT_DIR=/opt/java-project
SRC_DIR=$PROJECT_DIR/src
OUT_DIR=$PROJECT_DIR/out
CLASSPATH=$PROJECT_DIR/lib/*

# 创建输出目录
mkdir -p $OUT_DIR

# 编译
javac -d $OUT_DIR -cp "$CLASSPATH" $(find $SRC_DIR -name "*.java")

if [ $? -eq 0 ]; then
    echo "编译成功"
else
    echo "编译失败"
    exit 1
fi

3. 赋予执行权限并运行

chmod +x build.sh
./build.sh

适合:简单项目、学习、测试环境


三、使用 Maven 自动化(推荐)

1. 安装 Maven

sudo yum install -y maven

2. Maven 项目结构

project/
├── pom.xml
└── src/
    └── main/java/com/example/App.java

3. 编译命令

mvn compile

4. 自动化脚本

#!/bin/bash
cd /opt/java-project
mvn clean compile

适合:企业项目、依赖管理、标准化构建


四、定时自动编译(Cron)

如果你希望 定时自动编译

1. 编辑定时任务

crontab -e

2. 示例:每天凌晨 2 点编译

0 2 * * * /opt/java-project/build.sh >> /var/log/java-build.log 2>&1

适合:自动打包、数据任务、接口更新


五、Git + 自动编译(CI 思路)

1. 提交代码后自动编译

#!/bin/bash
cd /opt/java-project
git pull
mvn compile

结合:

  • cron
  • git webhook
  • Jenkins / GitLab CI

六、企业级:Jenkins 自动化(推荐)

流程

Git → Jenkins → Maven → Build → Deploy

Jenkins 在 CentOS 安装

sudo yum install -y jenkins
sudo systemctl start jenkins

Jenkins 任务配置

  • 源码管理:Git
  • 构建命令:
mvn clean package

适合:生产环境、多人协作


七、常见坑点

问题 解决方案
javac 不存在 安装 java-devel
中文乱码 编译时加 -encoding UTF-8
类找不到 检查 -cppom.xml
权限不足 使用 chmod +x

八、我可以继续帮你做的事

你可以告诉我:

  1. Java 版本
  2. 单个 Java 文件 还是 Maven 项目
  3. 是否需要 自动打包 / 自动重启服务
  4. 本地自动编译 还是 服务器 CI/CD

我可以帮你写: ✅ 完整脚本
✅ Jenkins Pipeline
✅ systemd + 自动编译重启

你现在是哪种使用场景?

0