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

Maven与Eclipse中JSONSchemaValidator模块名不一致,项目无法兼容构建

问题原因与解决方案

原因分析

你遇到的问题根源在于com.networknt/json-schema-validator 1.4.3版本是一个非模块化JAR:它既没有内置module-info.java定义模块,也没有在MANIFEST.MF文件中通过Automatic-Module-Name属性指定官方模块名。这种情况下,Maven(依赖JDK javac编译逻辑)和Eclipse的自动模块名推断规则出现了分歧:

  • Maven遵循JDK的自动模块名规则,基于JAR的核心包路径推断出模块名为com.networknt.schema;
  • Eclipse则基于JAR文件名(去掉版本号后将连字符替换为点)推断出模块名为json.schema.validator;
    两者的推断结果不一致,导致module-info.java中的声明只能适配其中一方。

解决方案

1. 升级到模块化版本(推荐)

从2.x版本开始,com.networknt/json-schema-validator已经添加了显式的module-info.java,官方统一模块名为com.networknt.schema,Maven和Eclipse都会一致识别这个名称。修改pom.xml中的依赖版本即可:

<dependency>
  <groupId>com.networknt</groupId>
  <artifactId>json-schema-validator</artifactId>
  <version>2.0.34</version> <!-- 可选择最新稳定版本 -->
</dependency>

升级后,只需要在module-info.java中添加requires com.networknt.schema;,就能同时兼容Maven构建和Eclipse编码调试。

2. 手动统一模块名(不升级的场景)

如果无法升级版本,可以手动让Eclipse和Maven使用同一个模块名:

  • 适配Eclipse到Maven的模块名:
    右键项目 → Build Path → Configure Build Path → 切换到Libraries标签页 → 找到json-schema-validator-1.4.3.jar → 展开该依赖 → 点击Module → 在弹窗中手动输入模块名com.networknt.schema → 保存配置。这样Eclipse就会使用和Maven一致的模块名,module-info.java中保留requires com.networknt.schema;即可。
  • 适配Maven到Eclipse的模块名:
    在pom.xml中配置maven-compiler-plugin,添加编译参数指定模块名:
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.1</version>
          <configuration>
            <source>11</source> <!-- 替换为你的项目JDK版本 -->
            <target>11</target>
            <compilerArgs>
              <arg>--add-modules=json.schema.validator</arg>
              <arg>--module-path=${project.build.dependencyClasspath}</arg>
            </compilerArgs>
          </configuration>
        </plugin>
      </plugins>
    </build>
    
    此时module-info.java中使用requires json.schema.validator;,就能同时兼容两边的构建需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 12:34:54