相关疑难解决方法(0)

IntelliJ检查给出"无法解析符号"但仍编译代码

平台:IntelliJ Community Edition 10.0.3
SDK:jdk1.6.0_21
操作系统:Windows 7

所以我对IntelliJ有一个奇怪的情况让我完全难过.我设置了一个Maven项目,并将log4j作为依赖项添加到pom.xml文件中.IDEA检查运行正常,我的单元测试全部编译运行.

然后我使用mvn install:install-file将hunnysoft的jmime库添加到我的本地maven存储库,如下所示.

mvn install:install-file -Dfile=jmime.jar -DgroupId=jmime \
-DartifactId=jmime -Dversion=3.1.1e -Dpackaging=jar
Run Code Online (Sandbox Code Playgroud)

Maven将jar文件安装到我的本地存储库中.

然后我进入IntelliJ的Settings => Maven => Repository Services并更新了我的本地存储库(以便IntelliJ重新索引存储库内容).

最后,我将以下依赖项添加到我的pom.xml文件中(就在log4j依赖项之上).

<dependency>
    <groupId>jmime</groupId>
    <artifactId>jmime</artifactId>
    <version>3.1.1e</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我现在创建一个新类如下:

package com.stackoverflow.question;

import org.apache.log4j.Logger;
import com.hunnysoft.jmime.ByteString;
import com.hunnysoft.jmime.Field;
import com.hunnysoft.jmime.FieldBody;

public class StackOverflowQuestion {
    public Field create(String name, String text) {
        Logger.getLogger(getClass()).debug("create entered");
        FieldBody body = new FieldBody();
        body.setText(new ByteString(text));
        Field field = new Field();
        field.setFieldName(name);
        field.setFieldBody(body);
        return field;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在为了古怪.IntelliJ的意图机制拾取并识别maven pom文件中的Logger导入就好了.然而,对于所有的hunnysoft导入,它报告:"无法解析符号'ByteString/Field/FieldBody'",但是 Build => Compile'StackOverflowQuestion.java' 正确编译所有内容,我为这个类创建的单元测试运行正常(尽管意图将对create()的调用标记为问题区域). …

java intellij-idea maven intellij-inspections

521
推荐指数
17
解决办法
45万
查看次数

标签 统计

intellij-idea ×1

intellij-inspections ×1

java ×1

maven ×1