出于某种原因,我的Intellij IDEA IDE开始强调使用本地类外部的任何内容作为错误。它只针对我编写的包中的项目 - 例如,像java。*这样的包不会显示为错误。即使是joda-time依赖也没有错误亮点,它只是来自我自己的包。这个问题才在我为项目编写pom.xml后才开始出现,所以我假设它与maven有关。
例如,以下行的main
为红色,错误为cannot resolve symbol 'main'
:
import main.java.com.jamobox.jamchatserver.clients.ClientReader;
然后在给出一个类作为参数的情况下,例如
public void doSomething(Client c) { .. }
我把东西放了
doSomething(new Client());
它将突出红色参数中的参数值
doSomething(Client) cannot be applied to doSomething(main.java.com.jamobox.jamchatserver.clients.Client)
正如我所说,代码编译并运行得非常好,它只是认为出错的IDE。我已经尝试了this类似问题中给出的所有答案,但似乎没有任何效果。
任何人对如何解决此问题都有任何想法?
如果它有助于任何人解决这个问题,这是我目前的pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jamobox.jamchatserver</groupId>
<artifactId>JamChatServer</artifactId>
<name>JamChat Server</name>
<version>0.2.1</version>
<dependencies>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.3</version>
<type>jar</type>
<optional>false</optional>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
答案 0 :(得分:5)
当你说'#34;它编译得很好&#34;时,你没有说明你是如何编译的?根据您所描述的内容以及我怀疑的问题,我假设您正在通过maven进行编译。
似乎在声明的源目录和包名称中存在一些不匹配。当您通过IDEA创建(裸骨)Java项目时,它会生成源目录{project.basedir}/src
。请注意,在项目视图中,src
目录为蓝色,表示它是主要(即生产)源目录:
这也显示在项目结构对话框中:
对于maven项目,路径java
中的默认主(ieproduction)源目录为{project.basedir}/src/main/java
。然后有一个相应的测试源目录{project.basedir}/src/test/java
。 IDEA将测试源目录标记为绿色文件夹。最后,主要和测试resources
目录都用于配置文件,图像等。在IDEA 12.x resources
目录中被标记为源和测试源目录color作为相应的java
目录。在IDEA 13(目前处于测试版并将于12月发布)中,它们被标记为不同的资源目录。
听起来好像转换为maven时,main\java
目录已添加到src
目录,com
根目录包目录已移至java
,但是发生这种情况时,包声明从com.jamobox...
更改为main.java.com.janbobox...
。这可能是因为当你移动时,src
仍被配置为源目录。因此,IDEA看到包名称从com.jamobox...
更改为main.java.com.janbobox...
,并更改import语句(以及可能的包语句)以匹配。
要修复,您需要执行以下操作:
java
目录(以及 不 src
目录)是否已标记为项目源,如上面的屏幕截图所示(显示IDEA 12.x和13.x项目树)
com
根目录包目录是否在src\main\java
而非src
package main.java.com
package com
个字符串
import main.java.com
import com
个字符串
醇>
那应该解决问题。如果仍有红色,请运行文件&gt;使缓存无效并重新启动IDEA。如果之后仍有问题,请修改原始问题并添加项目树和文件&gt;的屏幕截图。项目结构&gt; [模块]&gt; [来源标签] 对话窗口。