加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何在> = Java 9中将json的maven依赖项添加到模块中

发布时间:2020-12-14 19:25:05 所属栏目:Java 来源:网络整理
导读:在Java 8项目中,您只需在maven中添加以下依赖项 dependency groupIdjavax.json/groupId artifactIdjavax.json-api/artifactId version1.1/version/dependencydependency groupIdorg.glassfish/groupId artifactIdjavax.json/artifactId version1.1/version/d

在Java 8项目中,您只需在maven中添加以下依赖项

<dependency>
    <groupId>javax.json</groupId>
    <artifactId>javax.json-api</artifactId>
    <version>1.1</version>
</dependency>
<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.json</artifactId>
    <version>1.1</version>
</dependency>

使用OpenJDK,Eclipse 2018-12
和maven模块,它会导致在module-info.java中出现错误:

The package javax.json.stream is accessible from more than one module:
java.json,org.glassfish.java.json

因此,在两个依赖项目中都有一个名为javax.json.stream的程序包,由于存在拼图模块系统,因此不再允许该程序包吗?

如何解决这个问题?

编辑:
我将Maven依赖项更新为1.1.4,并将其放在类路径中.
javax.json-api具有module-info.java文件,并且工作正常,eclipse不再显示任何错误.
但是现在找不到实现javax.json(org.glassfish)的包,从而导致ClassNotFoundException:org.glassfish.json.JsonProviderImpl
我还能做什么?

编辑:
现在它正在工作,我忘记在该项目中生成module-info.java.

最佳答案

So in both dependency projects there is a package called
javax.json.stream and due to jigsaw module system this is not allowed
anymore?

仍然允许这样做,但是在类路径而不是模块路径(即在未命名模块中)都解决了这两个依赖项.

在以模块化方式创建库时解决此问题的另一种方法是,确保修复导出相同软件包的下游库,这将需要自下而上的迁移,并且您可能必须等待它们在其最新更新中对其进行修复(或检查是否已经退出),然后依靠它们.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读