Intellij: проблема с компиляцией apache poi - PullRequest
0 голосов
/ 14 декабря 2018

У меня проблема с компиляцией моего кода Java, когда я включаю библиотеку poi-4.0.0.Я знаю, что об этом спрашивали, но никакого реального ответа не было дано.Я получаю следующую ошибку:

Не удалось выполнить цель org.apache.maven.plugins: maven-compiler-plugin: 3.1: compile (default-compile) в проекте Litock: Ошибка компиляции: Ошибка компиляции:

/ C: /Users/MyName/Desktop/testBuilds/Litock/src/main/java/Controller/Controller.java: [17,37] пакет org.apache.poi.xssf.usermodel не существует

Мои зависимости pom:

<dependencies>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>ooxml-schemas</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.12</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-compress</artifactId>
            <version>1.18</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlbeans</groupId>
            <artifactId>xmlbeans</artifactId>
            <version>3.0.1</version>
        </dependency>
</dependencies>

Сборка моего pom:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>10</source>
                <target>10</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.1.0</version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>Main.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

    </plugins>
</build>

Мой файл iml:

<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="mysql-connector-java-8.0.12" level="project" />
<orderEntry type="library" exported="" name="xmlbeans" level="project" />
<orderEntry type="library" exported="" name="commons-collections4-4.2" level="project" />
<orderEntry type="library" exported="" name="commons-compress-1.18" level="project" />
<orderEntry type="library" exported="" name="poi-4.0.0" level="project" />
<orderEntry type="library" exported="" name="ooxml-schemas" level="project" />

Мой класс Controller:

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

Я могу вызывать функции класса в коде, но когда я компилирую в конце, я получаю сообщение об ошибке, которую я высказал в начале.

1 Ответ

0 голосов
/ 16 декабря 2018

Добавление комментария к ответу

Как указано на странице Apache POI для различных компонентов , чтобы использовать классы OOXML, такие как XSSF, необходимо зависетьна poi-ooxml артефакт Maven.

Таким образом, ваша зависимость должна (по состоянию на декабрь 2018 г.) быть

  <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>4.0.1</version>
  </dependency>

, которая привлечет другие необходимые артефакты, такие как poi и ooxml-schemas

...