IntellijIDEA无法识别Maven依赖项中指定的类

时间:2013-02-23 23:04:21

标签: java maven intellij-idea

我在IntellijIDEA中有一个用Maven创建的项目。然后,我在Pom.xml文件中指定了一组依赖项和外部存储库。

如果我执行“mvn install”,项目在命令行上可以正常运行。当我打开IDE中的任何代码文件时,虽然它表示Maven依赖项处理的所有类都无法识别 - 如果我从未将所需的JAR添加到构建路径,那么它将用于普通项目。

我知道在我的Eclipse Maven项目(而不是IntelliJ)中,它通常会在左侧显示一个额外的目录,上面写着“Maven Dependencies”,并列出了通过maven引入的JAR。我在这里看不到。我做错了什么?


以下是我的屏幕:

IDE Image

25 个答案:

答案 0 :(得分:29)

由于某些原因,重新导入没有成功。看了之后:

http://www.jetbrains.com/idea/webhelp/maven-importing.html

我设置了自动导入,然后问题就消失了;希望它能帮助别人。感谢大家的想法:)。

答案 1 :(得分:27)

在新计算机上安装IntelliJ IDEA后,我发现自己遇到了同样的问题。

我不得不更新远程maven存储库。 (Settings > Maven > Repositories

enter image description here

需要更新本地和远程回购。远程的那个在此之前没有更新过。重启后一切正常。您可能必须重新导入您的项目。

答案 2 :(得分:19)

我遇到了类似的问题。对我而言,最终我正在错误地导入项目。我一直在做

import project
    <navigate to existing project and click top level directory>
    follow the wizard

解决了我的maven问题的原因是

import project
    <navigate to existing project and click the pom.xml
    follow the wizard

答案 3 :(得分:18)

你可以去:

档案&gt;设置&gt;构建,执行,部署&gt;构建工具&gt;行家

并检查您的pom.xml是否不在“忽略的文件”列表中。

答案 4 :(得分:5)

对于我来说,文件>>使缓存/重新启动无效>>在IntelliJ中使无效和重新启动工作

答案 5 :(得分:3)

通过Intellij对存储库进行简单的重新导入和/或更新对我来说无法解决问题。

相反,我必须删除完整的~/.m2/repository目录,并让maven自行排序。之后Maven -> Reimport完成了它。

答案 6 :(得分:2)

在我的情况下,问题是项目是在maven2中,而intellj是为maven3配置的。在设置中切换到maven2解决了问题

答案 7 :(得分:2)

几天前遇到了“相同”的问题。这可能无关紧要,因为我的问题更特定于Spring引导,但是由于我在努力挣扎,并尝试了本文中的所有解决方案,因此我将分享我的经验。

我试图做的是将我的spring boot应用程序之一添加到另一个项目中,作为maven依赖项。依存关系已解决,但我无法访问我的班级。

  

当未声明任何包装时,Maven假定默认包装为JAR。   Spring Boot Maven插件生成的JAR会覆盖Maven生成的默认JAR。

解决方案是:

  

我们找到的解决方案是生成另一个JAR,它将用作从其他项目中导入的依赖项。

完整的article可以帮助我解决问题。

希望它可以帮助某人。

答案 8 :(得分:2)

将Maven项目重构为不同的模块后,我遇到了类似的问题。自行重新导入通常是行不通的,但是我发现删除.iml文件然后重新导入通常可以解决问题。

答案 9 :(得分:1)

转到 文件&gt;设置&gt;构建,执行,部署&gt;构建工具&gt; Maven的 并检查Maven主目录。这应该与用于命令行的maven安装相同

答案 10 :(得分:1)

对于像我这样仍然困扰的其他人可能会有用。 没有任何建议的修复工作。实际上,在我解决主要问题之前,不是在maven的安装位置。

就我而言,我没有使用标准位置。在maven设置中更改该位置(设置/ Maven / Maven主存储库)就可以了。

我的2美分。

答案 11 :(得分:1)

缓存导致问题!确保执行以下操作:

在您的终端中,转到项目/模块:

mvn clean install

在您的IntelliJ中:

  1. 文件>无效的缓存>无效

  2. 右键单击项目/模块> Maven>重新导入

答案 12 :(得分:0)

导入新项目时:

1.将项目中的所有模块标识为maven模块: 文件 ---> 新建项目设置 --> 构建执行部署 --> 构建工具 --> maven ---> 导入 ---> 启用“递归搜索项目”

答案 13 :(得分:0)

我遇到了这个问题,想法无法使用maven下载所有依赖的jar包,我只是尝试了以下操作:

MVN -U idea:idea

然后从maven存储库下载所有依赖的jar包

答案 14 :(得分:0)

右键单击pom.xml->添加为Maven项目->重新导入

Maven import

答案 15 :(得分:0)

重新启动,无效的缓存,外部建筑物,没有一个对我有用。

只有重新导入最终可以工作。出于其他原因,将其作为答案:

Right click the project > Maven > Reimport

答案 16 :(得分:0)

对于我来说,我应该离线检查工作

转到“文件”>“设置”>“构建,执行,部署”>“构建工具”> Maven 然后选中脱机工作

答案 17 :(得分:0)

如果在特定于组织的pom.xml中具有任何依赖关系,则需要更新项目的setting.xml路径,该路径默认情况下设置为Ubuntu中的用户目录:/home/user/.m2/settings .xml->(将其更改为您的apache-maven conf路径)

转到-> intellij设置->构建,执行,部署->构建工具-> Maven->用户设置文件

Update Setting.xml file Intellij

答案 18 :(得分:0)

只需删除项目的.idea文件夹,然后将项目重新导入IntelliJ中即可。

答案 19 :(得分:0)

出于我不了解的原因,就我而言,我需要在“构建”,“执行”,“部署”>“构建工具”>“ Maven”中启用“始终更新快照”设置。

这使IntelliJ重新下载了依赖关系并使其工作。

答案 20 :(得分:0)

对我来说,诀窍是在File&gt;中添加依赖项。项目设置&gt;模块&gt;的依赖关系。

答案 21 :(得分:0)

对我来说,这个问题似乎与maven helper插件(https://plugins.jetbrains.com/plugin/7179?pr=idea)有冲突。

我禁用它,它再次起作用:)

答案 22 :(得分:0)

首次启动IntelliJ而不是项目的#1)if /cover1.png !=existent file RewriteCond %{DOCUMENT_ROOT}/cover1\.png !-f #redirect "/cover1.png" to "/cover2.png" RewriteRule ^ /cover2\.png [NC,L,R] #2)if /cover2.png !=existent file RewriteCond %{DOCUMENT_ROOT}/cover2\.png !-f #redirect "/cover2.png" to "/default.png" RewriteRule ^ /default.png [NC,L,R] 文件时,选择要导入的项目目录,导致了我的问题。

关闭问题项目,然后再次执行导入过程,但选择pom.xml会导致IDE中的工作完全正常。

答案 23 :(得分:0)

看起来有几个有效的理由说明为什么intelliJ会忽略pom文件。 以前的答案都不适用于我的情况,所以这里有什么工作,以防其他人遇到这个问题:

在此示例中,IntelliJ完全忽略了module3。该目录中的pom.xml甚至不被视为maven pom。

我的项目结构是这样的:

myProject
    module1
    module2
    module3

但是,我的(简化)pom结构是这样的:

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>devs</groupId>
    <artifactId>myProject</artifactId>
    <version>0.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>myProject</name>

    <modules>
        <module>module1</module>
        <module>module2</module>
    <modules>

    <profiles>
        <profile>
            <id>CompleteBuildProfile</id>
            <modules>
                <module>module3</module>
            </modules>
        </profile>
    </profiles>
</project>

为了解决这个问题,我修改了根<modules>元素以暂时添加到module3中。<​​/ p>

    <modules>
        <module>module1</module>
        <module>module2</module>
        <module>module3</module>
    <modules>

接下来重新导入根pom,IntelliJ将添加模块。 完成后,还原pom。 IntelliJ将询问您是否还要从项目结构中删除module3。点击No

的Bam!完成。 Module3工作,我可以再次从IntelliJ运行我的集成测试:D

答案 24 :(得分:0)

将Intellij升级到1.4.15之后,这也发生在我身上。我试图以相同的结果重新导入整个项目,但启用Maven Auto Import做了一些技巧。