Java 中无法访问 Maven 依赖项

问题描述 投票:0回答:5

我有一个由 Maven 管理的项目,我正尝试在 Eclipse 中运行它。 问题是 Maven 管理的所有依赖项在 Java 代码中都无法访问。

在 Eclipse 中,我在导入相应类时遇到错误:

The type org.apache.commons.math3.util.Pair is not accessible

当我尝试使用 Maven 构建项目时,出现错误:

package org.apache.commons.math3.util is not visible (package org.apache.commons.math3.util is declared in the unnamed module, but module org.apache.commons.math3.util does not read it)

依赖项已通过 Maven 下载,我可以在 .m2 文件夹中找到它们。当我在 Eclipse 中查看 Java 构建路径时,我什至可以看到 jar 文件。

当我尝试通过命令行使用 Maven 时,我也遇到了同样的错误。

有谁知道为什么会发生这种情况?

java eclipse maven
5个回答
6
投票

我设法修复了它。我不知道为什么,但是当 eclipse 询问我时不创建 module-info.java 文件,一切都工作正常。


2
投票

我有一个不完整的 module-info.java 文件:删除它解决了我的问题。我想正确设置它也会起作用,但我需要理解模块文件。


0
投票

我也遇到过一次。在我的情况下看起来像是权限问题或磁盘空间问题。 另外,尝试从磁盘中删除依赖项并再次运行

mvn clean install
。 确保您使用的是最新的 Maven 版本并执行 ALT+F5 + 强制更新 Maven 依赖项。


0
投票

这里的其他答案并没有为我解决这个问题。相反,由于“uberjar”,这是一个类路径冲突。

在类路径中有:

<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path</artifactId>
    <version>2.7.0</version>
</dependency>

还有

<dependency>
    <groupId>org.neo4j.procedure</groupId>
    <artifactId>apoc</artifactId>
    <version>4.2.0.11</version>
    <classifier>core</classifier>
</dependency>

后者是一个 uberjar,它也包含与前者相同的所有类。不知怎的,Eclipse 无法处理这个问题。

修复方法是重新编译

apoc
,而无需在 uberjar 中添加此依赖项。


0
投票

我也面临着同样的问题。我创建了一个包含所有相同类的新项目,但我的新项目没有访问任何 Maven 库。

在 Visual Studio 代码中,当您创建新的 javaFX 项目时,它会生成 These files,其中

module-info.java
包含 these values。我的项目不包含 fxml 文件,因此我将依赖项添加到 pom.xml file

因此,将其与我删除的旧项目进行比较

module-info.java
文件和我所有的 包 xyz 不可访问 错误都消失了。

© www.soinside.com 2019 - 2024. All rights reserved.