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;
}
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 в основном используется для следующих элементов:
- Когда у вас есть набор проектов, который наследует общего родителя, можно поместить всю информацию о зависимости в общее POM и иметь более простые ссылки на артефакты в дочерних POM.
- управлять версиями артефактов, используемых в переходных зависимостях. Это означает, что если вы определите версию артефакта в
<dependencyManagement>
раздел, то вы можете просто объявить это без версии в<dependencies>
раздел.
Вы также можете обратиться к разделу "Введение в механизм зависимости" для получения дополнительной информации о дальнейших исследованиях.
Сумасшедшая вещь. Очевидно, репозиторий Maven для версии 1.11 не имеет JAR-файла, связанного с ним, поэтому его нельзя добавить напрямую. Вместо этого каждому из 4 субмодулей необходимо напрямую добавить свои зависимости, и это неожиданно работает. Я не уверен, почему это так, поскольку полный пакет включает их в качестве зависимостей. Тем не менее, я решил свою собственную проблему после разговора с моими животными об этом.
Если вы обновите maven, чтобы загрузить зависимости и импортировать класс WordCloud в свой java-файл? Эта ошибка может быть вызвана тем, что IDE не может найти класс.