【问题标题】:Java 9 compiles fine in maven but not in intellijJava 9 在 maven 中编译得很好,但在 intellij 中编译得不好
【发布时间】:2018-07-15 20:20:09
【问题描述】:

我想将我的项目从 java 8 更新到 java 10。解决 java 9 模块系统的众所周知的问题。然而,经过一些摆弄、研究和来回,我能够在 Maven 中编译所有内容。我在我的项目中添加了一个 module-info.java。另请参阅我的 pom 的这个 sn-p。

       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>10</source>
                <target>10</target>
                <release>10</release>
                <optimize>true</optimize>
                <debug>true</debug>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.ow2.asm</groupId>
                    <artifactId>asm</artifactId>
                    <version>6.2</version>
                </dependency>
            </dependencies>
        </plugin>

但是 Intellij 报告 100 个错误说

来自 A 和 B 的未命名模块就绪包 X

和类似的。我正在使用 Intellij 社区版 1018.1.5。我在 eclipse photon 中测试了它,它编译得很好。我认为 IntelliJ 将 maven 依赖项放在模块路径/类路径上的方式与 maven 或 eclipse 放置它们的方式不同。

但是,我不知所措,不知道如何说服 IntelliJ 编译我的项目。

【问题讨论】:

  • 最好共享您的 intelliJ 版本和项目配置,以便进一步了解...并清除您要迁移到的 java10 还是 java9。跨度>
  • 小题外话:当使用release时,你可以去掉source+targetdebug默认已经是true并且optimize已经被弃用了,编译器已经这样做了很多优化。
  • 你能复制实际的错误信息吗?这个在我看来不完整。
  • @RobertScholte:当前(或至少是最近的)版本的 IntelliJ 没有支持release,所以仍然需要sourcetarget
  • @Nicolai 真可惜……

标签: java maven intellij-idea java-9


【解决方案1】:

我更愿意将此放在评论中,因为在获得更多信息之前我无法真正给出答案,但您无法将屏幕截图添加到 cmets。无论如何,您是否在 File > Project Structure > Project 下调整了适当的设置,如下所示:

还有在文件 > 项目结构 > 模块下:

【讨论】:

  • 感谢分享设置截图。它看起来与我的设置非常相似,除了我使用的是 JDK 10 并且语言级别设置为 10。
猜你喜欢
  • 2015-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多