You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenPDF执行Maven install报错,编译成功后遇Java9模块编译问题

问题排查与解决思路

你遇到的问题核心是:执行install阶段时触发了Java 9模块信息的编译,而该编译过程无法找到项目自身的com.lowagie.*包,同时gpg.skip参数可能间接激活了相关编译逻辑。

具体原因分析

  • OpenPDF项目在src/main/java9目录下存放了Java 9+模块系统所需的module-info.java,其中引用的com.lowagie.*包是项目自身重构后的代码(原iText的包名)。
  • 之前执行clean compile package时,Maven并没有触发Java 9模块的编译流程(可能是默认Profile未激活或编译条件未满足),所以没有报错。
  • 当添加gpg.skip=true并执行install时,可能激活了项目中与发布、多版本编译相关的Profile,触发了Java 9模块信息的编译;此时由于编译顺序或Classpath配置问题,编译器无法找到已经编译好的com.lowagie.*类文件,导致报错。

可行的解决方法

  • 跳过重复编译直接安装:既然已经完成了compile package,可以跳过编译阶段直接执行install:

    mvn install -Dgpg.skip=true -DskipCompile -DskipTests
    

    这样Maven会直接使用已打包好的jar文件完成本地仓库安装,不会触发新的编译流程。

  • 强制指定Java 8编译:如果不需要Java 9模块支持,可强制让Maven用Java 8编译,跳过Java 9模块信息的处理:

    mvn clean compile package install -Dgpg.skip=true -Dmaven.compiler.source=1.8 -Dmaven.compiler.target=1.8
    
  • 检查并调整Maven Profile配置:打开项目的pom.xml,查找与Java 9编译相关的Profile配置(通常会有activation节点控制激活条件),修改或禁用该Profile,避免在install阶段触发不必要的模块编译。

内容的提问来源于stack exchange,提问作者Neil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 09:40:08