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

JDK8迁移至JDK17时Maven子模块构建错误求解决方案

JDK8迁移至JDK17后Maven构建问题解决方案

问题1:test1项目maven-compiler-plugin:3.8.0:compile编译失败

解决方案

  • 升级maven-compiler-plugin版本至3.10.1及以上:父pom的pluginManagement已配置3.10.1版本,需确保test1项目未在自身pom中强制指定旧版本3.8.0。旧版本插件对JDK17的编译规则、语法特性支持不完善,无法正确处理<release>17</release>参数。
  • 保持编译配置一致性:沿用父pom中<release>17</release>的配置,替代单独的source和target参数,确保编译输出完全适配JDK17环境。

问题2:test2项目maven-javadoc-plugin:3.5.0:jar生成Javadoc失败

解决方案

  • 升级maven-javadoc-plugin至3.6.0及以上版本:3.5.0版本不支持JDK17的Javadoc规范(如模块化文档生成、新语法标签解析)。可在父pom的pluginManagement中添加该插件的统一配置:
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.7.0</version>
        <configuration>
            <!-- 若存在临时Javadoc语法错误,可添加该参数跳过检查,后续需逐步修复错误 -->
            <additionalJOptions>
                <additionalJOption>-Xdoclint:none</additionalJOption>
            </additionalJOptions>
        </configuration>
    </plugin>
    
  • 若项目启用Java模块化,需在Javadoc配置中补充模块扫描参数,确保插件能识别模块内的类结构。

问题3:esymac项目Javadoc生成时找不到指定类

解决方案

  1. 校验依赖完整性:确认com.nokia.j2ssp.comp.esymac.fm.FaultManagerAIFRemote和com.nokia.j2ssp.comp.esymac.util.Configuration所在的依赖jar包已正确引入到esymac项目的<dependencies>中,且依赖版本适配JDK17(部分旧依赖可能未兼容模块化,需升级至支持JDK17的版本)。
  2. 配置Javadoc依赖扫描:在maven-javadoc-plugin配置中添加<includeDependencySources>true</includeDependencySources>(若依赖包含源码),确保插件能访问到依赖中的类定义,完成文档生成。
  3. 模块化适配:若项目使用module-info.java,需在模块声明中添加对目标类所在模块的引用:
    requires com.nokia.j2ssp.comp.esymac;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 19:57:38