作者:亮铮铮安神_453 | 来源:互联网 | 2022-12-27 12:52
我有一个JDK 9项目.运行时mvn install
,一切正常.当IntelliJ 2017.2.6与JDK 9.0.4一起使用时,由于拆分包,我想出了许多编译错误.例如,在我的POM中我设置了一个依赖org.apache.solr:solr-core:7.2.1
.IntelliJ显示的错误之一是:
Error:java: module solr.core reads package org.apache.lucene.search from both lucene.misc and lucene.sandbox
IntelliJ发出的编译错误的基本原理是:
solr-core
Maven依赖于工件lucene-misc
和lucene-sandbox
二者lucene-misc.jar
并lucene-sandbox.jar
定义类在包org.apache.lucene.search
IntelliJ认为lucene-misc.jar
并且lucene-sandbox.jar
是JDK 9模块(事实上,它们不是模块,它们没有module-info.java
文件).由于两个JDK 9模块无法参与同一个包,因此IntelliJ会发出编译错误.
相比之下,Maven编译器插件没有出错,因为它认为lucene-misc.jar
并且lucene-sandbox.jar
属于类路径,而不是模块路径.
我显然不想重新包装Lucene的东西.
所以我的问题归结为以下几点:如何将IntelliJ错误静音Error:java: module Mod1 reads package P from both Mod2 and Mod3
?