Intellij IDEA 2017.2无法解析符号

时间:2017-07-28 14:53:16

标签: java maven intellij-idea

在Intellij IDEA 2017.2中,我试图导入一个现有的多模块Maven项目,该项目通过Maven在IDE外部构建得很好。导入完成后,我注意到在一个Maven子模块中,一个符号未解析,让我们调用这个子模块子模块问题。未解析的符号是在另一个子模块中定义的类,我们可以调用 submodule-other 。问题是在子模块问题中,在子模块 - 其他级别的其他子模块中定义的其他类被发现正常(这些子模块被定义为子模块问题的pom文件中的依赖项)。此外,子模块 - 其他不是在子模块问题的pom文件中声明为依赖项。但我不应该这样做因为我提到mvn clean install -Dmaven.test.skip=true工作正常。 mvn test-compile也是如此。我正在使用最新的Maven 3.5.0,并指示IDEA在项目的Maven设置中使用相同的导入项目。注意:我没有权限显示代码或相关的POM文件。

到目前为止我试图解决的问题是:

  1. 无效缓存并重启IDEA,很多次
  2. 多次重新导入Maven项目
  3. 从所述项目中删除.idea文件夹和所有* .iml文件,并重新导入为Maven项目,几次
  4. 删除IDEA的系统偏好设置文件夹,然后多次重试所有之前的步骤(这一步很痛苦,因为我必须安装所有插件并重新配置IDE设置)
  5. 将同一个项目导入Eclipse-Oxygen,发现导入项目时没有任何问题。

1 个答案:

答案 0 :(得分:1)

我已经解决了这个问题。事实证明,IntelliJ IDEA IDE没有任何问题(至少我认为不是)。在生产中,我的顶级项目是另一个父Maven项目的子项目,因此它的pom文件中的版本使用${project.version}引用父项的版本。而在开发过程中,它是较低级别项目的父级,而它是自己的孩子。因此,在所有pom.xml文件中,我的顶级项目使用${project.version}来引用生产父级以及他们将我的顶级项目称为其父级的子poms,我更改了它对于像1.0.0-SNAPSHOT这样的文字而且所有问题都消失了,我甚至不必将项目重新导入IDE。

现在,正如我在原帖中所提到的,即使不必这样做,Maven也没有问题构建项目。如果有人知道,我很想知道为什么。也许IDE需要我这样做,因为它试图强制执行一些最佳实践?我通过观察idea.log来引导解决方案,它抱怨某些POM无效,而且在那些pom文件中,版本标签有一个红色波浪线下划线。