Intellij无法识别Java 8 Maven项目自动模块名称

问题描述 投票:1回答:1

我正在尝试将多个java 8 maven依赖项添加到intellij中的java 11 maven项目中。我已经将自动模块名称添加到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中,并在intellij中将其添加为maven项目,为package8项目将sdk设置为java 8。

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

但是在java 11项目中导入包时,出现错误

Package com.robert.package8在未命名的模块中声明,但是模块com.robert.package11无法读取它

并且在我的module-info.java中要求它给出Module not found错误

我是否缺少某些东西或做错了什么? package8项目是通过pom添加的,并且该目录包含项目文件,而不仅仅是jar。

java maven intellij-idea java-11 java-module
1个回答
0
投票

addClassPath删除或设置为false将在这里为您提供帮助。

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

以上内容足以在模块路径中使用该模块,使用Automatic-Module-Name将有助于将Jar识别为具有指定名称的Java模块。

© www.soinside.com 2019 - 2024. All rights reserved.