Intellij Maven "не может разрешить символ", хотя пакет был успешным

Моя проблема:
Я создал проект Maven. Я импортировал хранилище (называемое Kumo). В XML-файле конфигурации Maven ошибок не возникало. Ошибка, которую я получаю, возникает, когда я пытаюсь использовать один из классов.
Это говорит мне: Cannot resolve symbol 'WordCloud'

Что я пробовал с (я думаю) безрезультатно:

  • Аннулирование кешей
  • Перезапуск IntelliJ
  • Кнопка "Импортировать все проекты Maven"
  • Кнопка Создать источники
  • Кнопка Скачать источники
  • Добавление тега компиляции XML
  • Попытка создать этот проект в Windows дает тот же результат

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;
}

расположение

pom.xml

какие классы выглядят

3 ответа

Решение

В соответствии с рекомендациями репозитория kumo github, вы должны использовать зависимость ниже, а не <artifactId>kumo</artifactId>

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

Позвольте объяснить вам, почему <artifactId>kumo</artifactId> не работает Этот пом использует <project><dependencyManagement> для объявления информации о зависимости. Maven будет импортировать зависимости из <project><dependencies> раздел вместо <project><dependencyManagement>,

Вы можете проверить пом kumo в вашем местном хранилище Maven в ${user}\.m2\repository\com\kennycason\(окна).

А Maven's dependencyManagement в основном используется для следующих элементов:

  1. Когда у вас есть набор проектов, который наследует общего родителя, можно поместить всю информацию о зависимости в общее POM и иметь более простые ссылки на артефакты в дочерних POM.
  2. управлять версиями артефактов, используемых в переходных зависимостях. Это означает, что если вы определите версию артефакта в <dependencyManagement> раздел, то вы можете просто объявить это без версии в <dependencies> раздел.

Вы также можете обратиться к разделу "Введение в механизм зависимости" для получения дополнительной информации о дальнейших исследованиях.

Сумасшедшая вещь. Очевидно, репозиторий Maven для версии 1.11 не имеет JAR-файла, связанного с ним, поэтому его нельзя добавить напрямую. Вместо этого каждому из 4 субмодулей необходимо напрямую добавить свои зависимости, и это неожиданно работает. Я не уверен, почему это так, поскольку полный пакет включает их в качестве зависимостей. Тем не менее, я решил свою собственную проблему после разговора с моими животными об этом.

Если вы обновите maven, чтобы загрузить зависимости и импортировать класс WordCloud в свой java-файл? Эта ошибка может быть вызвана тем, что IDE не может найти класс.

Другие вопросы по тегам