我最近探索了使用org.json库处理JSON数据,一切都很顺利。现在我开始了一个更大的Maven项目,我打算使用Jackson库来代替它。遗憾的是,它似乎不适合我。我想尝试ObjectMapper类,VScode自动完成了这个类,它也自动添加了所需的导入:
import com.fasterxml.jackson.databind.ObjectMapper;
然而,我也立即得到了一个错误的那一行:“类型com.fasterxml.Jackson.databind.对象Map器是不可访问的Java(16778666)”
我已经向pom.xml文件添加了必要的依赖项,如下所示:
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>13</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>13</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.14.0</version>
</dependency>
</dependencies>
我错过了什么吗?还有什么我应该做的吗?
2条答案
按热度按时间yzuktlbb1#
这不是Maven的问题。您可能已经为项目创建了一个package-info.java,因此所有依赖项都在模块路径上结束,但您的package-info.java缺少相应的声明。
您必须添加这样一行:
另请参阅:How to fix 'Package is declared in module, but module does not read it' error in IntelliJ JavaFX?
cedebl8k2#
ObjectMapper
所需的唯一依赖项是发生此错误的原因是Jackson库未包含在项目的类路径中。可能是您的项目正在使用Java平台模块系统(JPMS);则日志还将包含:
...在“未命名模块”中声明...模块不读取它。
如果是这种情况,请将
requires
指令添加到module-info.java
文件,以指定此模块需要jackson-databind库:加入这个
requires
指示词之后,请再次重新编译项目。