我有一个JDK 1.7项目,maven依赖于我的maven repo中的本地jar。
我无法使用Intellij构建项目,错误无法找到符号(符号是从本地jar导入包的类)
但我可以使用'mvn package'成功构建项目。
我花了很多时间寻找解决方案,我已经做过的事情:
此错误发生在我之前的几次,但通常只是关闭Intellij和/或执行'mvn clean install'就行了。
请帮忙。
答案 0 :(得分:90)
我知道这已经晚了,但执行mvn idea:idea
解决了这个问题。
答案 1 :(得分:24)
尝试删除所有.iml和您的POM。 然后将POM再次复制并粘贴到项目中,然后重新打开并重新导入它。
答案 2 :(得分:13)
添加更多提示,因为这是我遇到类似问题时在搜索中出现的第一件事(项目构建在mvn中,而不是在IntelliJ中),以防它可能帮助其他人。
当我有这个时,它在Windows和Mac上是一个不同的修复。
在Mac上,我进入了ItellijIDEA / Preferences / Build,Execution,Deployment / Build Tools / Maven / Maven主目录,并将其设置为使用我单独安装的Maven而不是捆绑的Maven。所有构建问题都消失了。
在Windows上,我看到了与SSL相关的idea.log中的异常,而我的项目树在External Libraries分支下只有Java。通过查看其他站点,听起来IntelliJ使用自己的私有JDK而不是系统JDK(即使在我的情况下,我已经安装了完全相同的JDK版本)。我的系统JDK在IntelliJ私有JDK没有的企业Nexus服务器的密钥库中安装了证书,因此在尝试从Nexus获取文件时会抛出异常。为此,解决方案是退出IntelliJ,设置一个名为IDEA_JDK的环境变量,指向已经安装了具有正确证书的JDK并重新启动IntelliJ。所有构建问题都消失了。
答案 3 :(得分:11)
我发现我的.iml文件和pom存在冲突并导致问题。
答案 4 :(得分:5)
答案 5 :(得分:3)
我知道我在这次谈话中已经很晚了,但只是想发布这个以防其他人遇到这个问题。发生这种情况的另一个原因是因为您没有提到正确的存储库。 Intellij默认选择jar的捆绑版本,而不是你自己的maven资源库中的版本。确认连接的存储库是正确的。
答案 6 :(得分:3)
IDE在构建时使用自己的Maven捆绑副本。如果终端上的maven与IDE不同,那么你希望它们是相同的。
GOTO(在Mac上) -
IntelliJ Idea - >偏好 - >构建,执行,部署 - >构建工具 - > Maven的。设置 Maven主目录的路径
要查找从终端使用的Maven的路径,请键入命令mvn -version
,这应该打印出一堆详细信息,包括dir路径。把它放在 Maven主目录。
为了安全起见,您也可以为JDK位置执行相同操作
====其他一些可能导致此类问题的事情===
如果执行mvn package或mvn clean install build,那么它必须对IDE缓存执行某些操作。 除此之外,这个通常有助于解决这些错误 - >
文件 - >无效缓存
答案 7 :(得分:2)
在我的情况下,我的iml不同步,因此我删除了特定模块的iml,然后在maven选项下选择unignore project来重新创建iml
答案 8 :(得分:1)
"无法找到符号"意味着intellij无法解决"依赖"。所以,你可以强迫"依赖性分析"点击"分析" - > "分析依赖关系"然后选择"分析范围"
答案 9 :(得分:1)
从命令提示符处执行命令:mvn idea:idea
并右键单击项目->从菜单中重新导入依赖项
答案 10 :(得分:0)
此错误的另一个原因是在 pom.xml 文件中使用了依赖项,例如 lombok。如果你在java文件中使用了@Data等lombok注解,那么你需要在intellij中安装lombok插件来摆脱IDE中的“错误”。
答案 11 :(得分:0)
我遇到了同样的问题。我可以在终端中成功运行mvn clean package
命令,但无法从IntellJ运行或构建。我做了以下动作,但都失败了。
mvn clean package
或mvn clean package
mvn clean package
mvn idea:idea
我做的最后一件事: 删除项目中的.idea和.iml,删除所有依赖项文件,然后从计算机中删除IntellJ。重新安装IntellJ后,我的项目成功构建。我希望我有更好的方法来解决这个问题。
答案 12 :(得分:0)
在Mac中,我通过从计算机中删除Intellij Idea Appication并删除其中的缓存文件来解决此问题 〜/图书馆/应用程序支持/JetBrains/IntelliJIdea2020.1 〜/ Library / Caches / JetBrains / IntelliJIdea2020.1
然后重新安装它,打开我的项目,并成功构建它!
答案 13 :(得分:0)
对我来说,问题是我在 IntelliJ Java编译器设置中选择了 Ajc编译器。将其更改回 Javac 后,一切正常。
答案 14 :(得分:0)
就我而言,问题出在不同的Project Java SDK版本中。从终端构建项目时,maven使用Java 8,从IDEA构建项目时,则使用Java11。
转到文件>项目结构...,然后在项目设置中将Project SDK设置为所需的版本。
答案 15 :(得分:0)
答案 16 :(得分:0)
我也遇到了同样的问题。 从终端使用 maven 命令 (mvn clean install -DskipTests=true) 项目已成功构建。但是在intellij中无法识别jar spring库文件。
使用以下步骤修复它:
RCA:我怀疑这是由于 linux 中的权限问题造成的
答案 17 :(得分:0)
如果配置了错误的模块,请执行以下步骤:
答案 18 :(得分:0)
还有一种未提及的可能性。如果您从com.sun.*
导入库。这也会导致此问题。
程序在ide中运行时可以运行,因为com.sun.*
中的这些类都在jre/lib
目录中,因此在运行时将被加载。但是,当您运行mvn package
时,由于自Java 1.6以来oracle的限制,这些库将无法访问(这些库在某种程度上已被弃用)。要解决此问题,您可以添加
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<verbose />
<bootclasspath>C:/Program Files/Java/jdk1.8.0_161/jre/lib/rt.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
</plugins>
</build>
请记住用您自己的rt.jar
路径替换cootclasspath
您可以搜索Access restriction: The type XXX is not accessible due to restriction on required library
以获得更多详细信息。
答案 19 :(得分:0)
删除.idea文件夹并关闭IDE
再次打开IDE并导入将重新导入的项目,因为.IDEA文件夹已被我们先前删除
检查外部库模块,如果未填充所需的依赖项,则检查在IDE中是否正确给出了maven settings.xml位置
答案 20 :(得分:0)
我有同样的问题。 转到:
文件->项目结构->模块。选择您的模块,然后在“ 依赖项”选项卡下,确保已添加所有Maven依赖项。
为确保在构思编辑器中收到类似问题的警告,请执行以下操作:从“依赖性”选项卡切换到“源”,并添加将src标记为源。
答案 21 :(得分:0)
此简单过程大约需要1分钟,没有任何风险。
答案 22 :(得分:0)
如果您使用gradle,请尝试以下命令。这解决了我的问题
gradle cleanIdea idea
答案 23 :(得分:0)
我没有高兴地尝试了以上所有内容。但是我做了一件事最终使它起作用:
我转到C:\ Users \ .IntellijJIdea2018.2,然后删除了整个文件夹。
它删除IntelliJ的所有设置和缓存。我不得不从头开始重新导入我的项目,但之前从未进行过简单的删除和重新导入的操作,但这终于使它再次起作用。
答案 24 :(得分:0)
我关闭了该项目,然后通过单击root pom(不仅是文件夹,而且是pom文件本身)再次导入了该项目。
答案 25 :(得分:0)
我尝试使缓存无效,将Maven更改为已安装的版本,但无济于事。
关闭并重新创建一个新项目即可解决该问题。
答案 26 :(得分:0)
这里的其他答案中的许多有价值的提示,只是想添加为我的问题工作的解决方案。
我们最近开始使用私有Maven存储库,并在调用Maven cmdline时始终执行mvn -s settings.xml
。 IntelliJ当然不知道私人回购,所以需要一些帮助。
转到设置 - &gt;构建,执行,部署 - &gt;构建工具 - &gt; Maven并覆盖&#34;用户设置文件&#34;选项。
答案 27 :(得分:0)
我遇到了同样的问题。我在Idea设置中将maven版本从3.0.5更改为3.0.4,现在一切正常。不知道为什么这会对我有所帮助。