Как исправить ошибку «Не удается разрешить импорт org.apache.poi» - PullRequest
0 голосов
/ 29 января 2019

Я хочу использовать Apache-POI в своем коде, но получаю сообщение об ошибке The import org.apache.poi cannot be resolved в операторе импорта import org.apache.poi.xssf.usermodel.XSSFWorkbook;

Я новичок с недавно настроенным кодом Visual Studiov1.30.2, Maven 3.6.0, Java JRE 1.8.0_201.

Я активировал следующие расширения: отладчик для Java, средство просмотра зависимостей Java 0.16.0, пакет расширений Java 0.3.0, Java Java 0.5.0тестовый прогон, 0.14.0 Поддержка языков для Java (TM), 0.37.0 Maven для Java, 0.14.0

Я ввел эти операторы в pom.xml в разделе зависимостей:

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.0.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.0.1</version>
</dependency>

Я также пытался использовать другие версии POI, например, 3.10-FINAL.

Я слишком новичок в Java, Maven и VSCode, чтобы быть уверенным, что я включил всю необходимую информацию, чтобы указать нарешение.Пожалуйста, помогите мне:)

Я запустил mvn compile, с таким результатом:

C:\Users\MYUSERNAME\Documents\Java\project2>mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] ---------------------< MYNAME.project2:project2 >---------------------
[INFO] Building project2 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ project2 ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Users\MYUSERNAME\Documents\Java\project2\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ project2 ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to C:\Users\MYUSERNAME\Documents\Java\project2\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /C:/Users/MYUSERNAME/Documents/Java/project2/src/main/java/MYNAME/project2/App.java:[12,1] package org.apache.poi.ss.usermodel does not exist
[ERROR] /C:/Users/MYUSERNAME/Documents/Java/project2/src/main/java/MYNAME/project2/App.java:[13,37] package org.apache.poi.xssf.usermodel does not exist
[ERROR] /C:/Users/MYUSERNAME/Documents/Java/project2/src/main/java/MYNAME/project2/App.java:[14,37] package org.apache.poi.xssf.usermodel does not exist
[ERROR] /C:/Users/MYUSERNAME/Documents/Java/project2/src/main/java/MYNAME/project2/App.java:[46,9] cannot find symbol
  symbol:   class XSSFWorkbook
  location: class MYNAME.project2.App
[ERROR] /C:/Users/MYUSERNAME/Documents/Java/project2/src/main/java/MYNAME/project2/App.java:[46,45] cannot find symbol
  symbol:   class XSSFWorkbook
  location: class MYNAME.project2.App
[ERROR] /C:/Users/MYUSERNAME/Documents/Java/project2/src/main/java/MYNAME/project2/App.java:[48,9] cannot find symbol
  symbol:   class XSSFSheet
  location: class MYNAME.project2.App
[ERROR] /C:/Users/MYUSERNAME/Documents/Java/project2/src/main/java/MYNAME/project2/App.java:[55,13] cannot find symbol
  symbol:   method setCellValue(java.lang.String)
  location: variable cell of type com.google.common.collect.Table.Cell
[INFO] 7 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  5.549 s
[INFO] Finished at: 2019-01-30T09:41:45+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project project2: Compilation failure: Compilation failure:
[ERROR] /C:/Users/MYUSERNAME/Documents/Java/project2/src/main/java/MYNAME/project2/App.java:[12,1] package org.apache.poi.ss.usermodel does not exist
[ERROR] /C:/Users/MYUSERNAME/Documents/Java/project2/src/main/java/MYNAME/project2/App.java:[13,37] package org.apache.poi.xssf.usermodel does not exist
[ERROR] /C:/Users/MYUSERNAME/Documents/Java/project2/src/main/java/MYNAME/project2/App.java:[14,37] package org.apache.poi.xssf.usermodel does not exist
[ERROR] /C:/Users/MYUSERNAME/Documents/Java/project2/src/main/java/MYNAME/project2/App.java:[46,9] cannot find symbol
[ERROR]   symbol:   class XSSFWorkbook
[ERROR]   location: class MYNAME.project2.App
[ERROR] /C:/Users/MYUSERNAME/Documents/Java/project2/src/main/java/MYNAME/project2/App.java:[46,45] cannot find symbol
[ERROR]   symbol:   class XSSFWorkbook
[ERROR]   location: class MYNAME.project2.App
[ERROR] /C:/Users/MYUSERNAME/Documents/Java/project2/src/main/java/MYNAME/project2/App.java:[48,9] cannot find symbol
[ERROR]   symbol:   class XSSFSheet
[ERROR]   location: class MYNAME.project2.App
[ERROR] /C:/Users/MYUSERNAME/Documents/Java/project2/src/main/java/MYNAME/project2/App.java:[55,13] cannot find symbol
[ERROR]   symbol:   method setCellValue(java.lang.String)
[ERROR]   location: variable cell of type com.google.common.collect.Table.Cell
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/

Я также вставил полный вывод mvn -X compile сюда

Я вставил свои полные POM.XML сюда

В моей локальной папке C: \ Users \ MYUSERNAME.m2 \ repository \ org \ apache там есть нет подпапки poi.

Ответы [ 3 ]

0 голосов
/ 30 января 2019

Согласно журналу ошибок существует 2 возможности

  1. Проблема сети .Maven не может загрузить файлы JAR из своего хранилища, поэтому в папке .m2
    нет библиотеки POI Решение: Проверьте сеть / Интернет.
  2. Файлы повреждены .Это происходит, если файл (ы) был поврежден.
    Решение: удалите папку org.apache.poi внутри папки .m2 .Правый клик по проекту (из Eclipse) -> Maven -> Update project.
    Затем clean & refresh project, затем команда Run Maven clean install
0 голосов
/ 30 января 2019

Спасибо всем авторам, и особенно @ayZagen (который указал мне на pom.xml).

Оказывается, я вставил зависимости для poi в раздел зависимостей

        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>

, а не в правильный раздел <project> <dependencies>.

Когда я переместил свои зависимости в правильный раздел , maven загружает POI, и эта часть кода компилируется.

Извините, что потратил время людей на тривиальную ошибку.Спасибо, что помогли мне узнать и задали правильные вопросы!Это был очень положительный опыт!

0 голосов
/ 29 января 2019

РЕДАКТИРОВАТЬ Попробуйте переместить зависимости poi в корневой тег dependencies.

Выполнить mvn compile

При первом выполнении этого (или любого другого)other), Maven потребуется загрузить все плагины и связанные с ними зависимости, необходимые для выполнения команды.Из чистой установки Maven это может занять довольно много времени (в приведенном выше выводе это заняло почти 4 минуты).Если вы выполните команду еще раз, Maven теперь будет иметь то, что ему нужно, поэтому ему не нужно загружать что-то новое, и он сможет выполнять команду намного быстрее.

Maven: Начало работы

...