Intellij не распознает java 8 maven проекта автоматизации c имя модуля - PullRequest
1 голос
/ 30 января 2020

Я пытаюсь добавить несколько java 8 maven-зависимостей в java 11 maven-проект в intellij. Я добавил имя модуля automati c в java 8 pom, например, где com.robert.package8 - имя пакета.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.2.0</version>
    <configuration>
        <archive>
            <manifestEntries>
                <Automatic-Module-Name>com.robert.package8</Automatic-Module-Name>
            </manifestEntries>
            <manifest>
                <addClasspath>true</addClasspath>
            </manifest>
        </archive>
    </configuration>
</plugin>

В проекте java 11 я добавил пакет как зависимость в pom и добавил его как проект maven в intellij, установив для sdk значение java 8 для проекта package8.

<dependency>
    <groupId>com.robert</groupId>
    <artifactId>package8</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

Однако при импорте пакетов в java 11 проект, я получаю сообщение об ошибке

Пакет com.robert.package8 объявлен в неназванном модуле, но модуль com.robert.package11 не читает его

и требует его в моем модуле-info. java дает Module not found ошибку

Есть что-то, что я пропускаю или делаю неправильно? Проект package8 добавляется через pom, а каталог содержит файлы проекта, а не просто jar.

1 Ответ

1 голос
/ 30 января 2020

Удаление или установка addClassPath на false поможет вам в этом.

<archive>
    <manifestEntries>
        <Automatic-Module-Name>com.robert.package8</Automatic-Module-Name>
    </manifestEntries>
</archive>

Выше достаточно для использования модуля в модуле pathp и использование Automatic-Module-Name поможет распознать ваш Jar как модуль java с указанным именем.

...