温馨提示×

CentOS编译Java多模块怎么处理

小樊
40
2026-08-04 18:21:38
栏目: 编程语言

CentOS 上编译 Java 多模块项目,通常取决于你使用的构建工具。下面按最常见场景给你一个完整、实用的说明。


一、最常见方案:使用 Maven 多模块(推荐)

1️⃣ 环境准备(CentOS)

# 查看是否已安装 Java
java -version

# 如果没有,安装 JDK(以 JDK 8 为例)
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

确认 JAVA_HOME

echo $JAVA_HOME

如未设置(示例):

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

2️⃣ Maven 多模块项目结构

典型结构如下:

parent-project
│── pom.xml
├── module-a
│   └── pom.xml
├── module-b
│   └── pom.xml
└── module-c
    └── pom.xml

父 pom.xml(关键)

<project>
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>parent-project</artifactId>
    <version>1.0.0</version>
    <packaging>pom</packaging>

    <modules>
        <module>module-a</module>
        <module>module-b</module>
        <module>module-c</module>
    </modules>
</project>

3️⃣ 在 CentOS 上编译整个多模块项目

进入项目根目录:

cd parent-project

✅ 编译(不执行测试)

mvn clean compile -DskipTests

✅ 打包(生成 jar / war)

mvn clean package -DskipTests

✅ 只编译某个模块

mvn clean compile -pl module-a

✅ 编译某个模块及其依赖模块

mvn clean compile -pl module-b -am

4️⃣ 常见问题处理

❌ 内存不足(CentOS 服务器常见)

export MAVEN_OPTS="-Xmx1024m -Xms256m"

或:

mvn clean package -DskipTests -Xmx1024m

二、使用 Gradle 多模块(次常见)

1️⃣ 安装 Gradle

sudo yum install -y gradle

或手动安装:

wget https://services.gradle.org/distributions/gradle-7.6-bin.zip
unzip gradle-7.6-bin.zip
export PATH=$PWD/gradle-7.6/bin:$PATH

2️⃣ Gradle 多模块结构

root
├── settings.gradle
├── build.gradle
├── module-a
│   └── build.gradle
├── module-b
│   └── build.gradle

settings.gradle

include 'module-a', 'module-b'

3️⃣ 编译

gradle build

或:

./gradlew build

三、没有构建工具(不推荐)

如果是纯多模块 Java 项目(无 Maven / Gradle):

javac -d out \
  -sourcepath src \
  -cp lib/* \
  src/com/example/**/*.java

❌ 维护成本高,不建议生产使用。


四、CentOS 编译多模块最佳实践总结

推荐组合

CentOS + JDK + Maven + 多模块 pom

常用命令速查

需求 命令
编译全部 mvn clean compile
打包 mvn clean package
跳过测试 -DskipTests
编译指定模块 -pl module-name
编译依赖模块 -am

五、如果你愿意,我可以帮你:

  • ✅ 分析你现有的 pom.xml / 项目结构
  • ✅ 解决 模块依赖、版本冲突
  • ✅ 优化 CentOS 编译性能
  • ✅ 配置 CI(Jenkins / GitLab CI)

你可以直接贴出:

  • 项目结构
  • 使用的 Java / Maven 版本
  • 报错信息(如果有)

0