JDK17下Maven构建JacORB时org.omg.CORBA不存在问题求助
解决JDK17下Maven构建JacORB的org.omg.CORBA缺失问题
问题根源
- JDK 9及以上版本(含17)已移除默认自带的CORBA模块,编译时无法找到
org.omg.CORBA相关类。 - JacORB的
omgapi模块依赖idl-compiler生成代码,直接在idl-compiler中添加omgapi依赖会触发循环依赖,导致构建失败。
解决方案
方法一:添加第三方CORBA API依赖(推荐)
编辑idl-compiler/pom.xml,在<dependencies>节点中添加CORBA API规范依赖(仅用于编译阶段,避免循环):
<dependency> <groupId>org.omg.spec.corba</groupId> <artifactId>CORBA_2_3_1_spec</artifactId> <version>1.0.0</version> <scope>provided</scope> </dependency>
完成后执行以下命令先单独编译idl-compiler,再构建整个项目:
# 先编译idl-compiler模块 mvn clean install -pl idl-compiler # 再构建整个项目 mvn clean install
方法二:临时用JDK8编译idl-compiler
如果方法一无效,可借助JDK8自带的CORBA模块完成idl-compiler的编译,再切换回JDK17构建全量项目:
- 临时切换JAVA_HOME到JDK8路径(根据你的实际路径调整):
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
- 编译
idl-compiler模块:
mvn clean install -pl idl-compiler
- 切回JDK17环境:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
- 构建整个JacORB项目:
mvn clean install
额外检查
确保JacORB根pom.xml中已配置JDK17的编译参数:
<properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> </properties>
内容的提问来源于stack exchange,提问作者Mehdi Charife
相关产品推荐
相关产品推荐

