Intellij maven "cannot resolve symbol" 即使打包成功

Intellij maven "cannot resolve symbol" even though package was successful

我的问题:
我创建了一个 Maven 项目。我导入了一个存储库(称为 Kumo)。在 Maven 配置 XML 文件中,我没有出现任何错误。当我尝试使用 类.
之一时出现错误 它告诉我:Cannot resolve symbol 'WordCloud'

我尝试过的(我认为)没有结果:

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>kumo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>com.kennycason</groupId>
            <artifactId>kumo</artifactId>
            <version>1.11</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
</project>

Test_1.java:

public class Test_1 {
    WordCloud cloud;
    FrequencyAnalyzer analyzer;
}

Test_2.java:

package Example;

public class Test2 {
    WordCloud cloud;
    FrequencyAnalyzer analyzer;
}

最疯狂的事情。显然 1.11 版的 Maven repository 没有与之关联的 JAR,因此无法直接添加。相反,4 个子模块中的每一个都必须直接添加它们的依赖项,然后突然间它就可以工作了。我不确定 为什么 是这种情况,因为整个包将它们作为依赖项包含在内。不过,在与我的动物讨论后,我已经解决了自己的问题。

您是否应该更新 maven 以下载依赖项并将 WordCloud class 导入您的 java 文件?这个错误可能是由于 IDE 找不到 class.

根据 kumo github repository 的建议,您应该使用以下依赖项而不是 <artifactId>kumo</artifactId>

<dependency>
    <groupId>com.kennycason</groupId>
    <artifactId>kumo-core</artifactId>
    <version>1.11</version>
</dependency>

让我们向您解释为什么 <artifactId>kumo</artifactId> 不起作用。这个 pom 使用 <project><dependencyManagement> 来公布依赖信息。 Maven 将从 <project><dependencies> 部分而不是 <project><dependencyManagement> 导入依赖项。

您可以在 ${user}\.m2\repository\com\kennycason\(windows).

的本地 Maven 存储库中查看 kumo 的 pom

而Maven的dependencyManagement主要用于以下项目,

  1. 当您拥有一组继承共同父项的项目时,可以将有关依赖项的所有信息放在共同 POM 中,并在子 POM 中更简单地引用工件。
  2. 控制传递依赖项中使用的工件版本。这意味着如果您在 <dependencyManagement> 部分中定义了工件的版本,那么您可以在 <dependencies> 部分中声明它而无需版本。

您也可以参考Introduction to the Dependency Mechanism获取更多示例以进一步学习。