我试图将多个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项目中导入包时,出现错误
在未命名的模块中声明了包装com.robert.package8,但模块com.robert.package11无法读取
并在我的module-info.java中要求它给出了Module not found
错误
我是否缺少某些东西或做错了什么? package8项目是通过pom添加的,并且该目录包含项目文件,而不仅仅是jar。
答案 0 :(得分:1)
将addClassPath
删除或设置为false
可以为您提供帮助。
<archive>
<manifestEntries>
<Automatic-Module-Name>com.robert.package8</Automatic-Module-Name>
</manifestEntries>
</archive>
以上内容足以在模块路径中使用该模块,使用Automatic-Module-Name
将有助于将您的Jar识别为具有指定名称的Java模块。