gpt4 book ai didi

java - 如何将 json 的 Maven 依赖项添加到 >= Java 9 中的模块

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:06:31 24 4
gpt4 key购买 nike

在 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
< br/>我还能做什么?

编辑:
它现在可以工作了,我忘了在这个项目中生成一个 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?

这仍然是允许的,但是这两个依赖项都在类路径而不是模块路径上得到解析,即在未命名模块中.

在将库创建为模块化时解决此问题的另一种方法是确保修复导出相同包的下游库,这需要自下而上的迁移,您可能必须等待他们在最新版本中修复它更新(或检查是否已经存在)然后依赖它们。

关于java - 如何将 json 的 Maven 依赖项添加到 >= Java 9 中的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54183017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com