【问题标题】:Intellij not recognizing java 8 maven project automatic module nameIntellij 无法识别 java 8 maven 项目自动模块名称
【发布时间】:2020-01-29 23:49:32
【问题描述】:

我正在尝试将多个 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。

【问题讨论】:

  • 你能用 Maven 从命令行构建项目吗?

标签: java maven intellij-idea java-11 java-module


【解决方案1】:

删除addClassPath 或将false 设置为false 会对您有所帮助。

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

以上对于要在模块路径中使用的模块就足够了,使用 Automatic-Module-Name 将有助于将您的 Jar 识别为具有指定名称的 java 模块。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2019-02-18
  • 2021-04-16
  • 2011-11-30
  • 1970-01-01
  • 1970-01-01
  • 2019-06-03
  • 2019-09-18
  • 1970-01-01
相关资源
最近更新 更多