如果在Intellij中手动添加jar,则会发生编译错误

时间:2019-07-18 07:08:06

标签: java spring maven intellij-idea

我在项目中使用Maven,由于某些原因,应该手动添加一些jar(我遵循了Correct way to add external jars (lib/*.jar) to an IntelliJ IDEA project之类的步骤)。

该软件包可以成功导入。但是,会发生编译错误,这表明该软件包不存在,并且找不到使用的对象的符号。

我尝试了以下技巧,但仍保持不变:

  1. 无效的缓存/重启
  2. 重新导入
  3. 删除.idea文件和.iml文件

退出该场景的过程与此类似:https://intellij-support.jetbrains.com/hc/en-us/community/posts/206821195--beginner-question-including-external-jar-compile-error

请参阅以下示例图像。它可能运行成功,但无法很好地编译。

IntelliJ screenshot

Maven compile error screenshot

1 个答案:

答案 0 :(得分:3)

原因是,当您通过IntelliJ手动添加库时,只有IntelliJ知道它们,并且当您使用Maven编译代码时,Maven无法找到它,因为Maven仅搜索您在pom.xml中定义的依赖项。

您应该将您的库安装在(至少)本地maven存储库中,并将它们作为常规依赖项添加到pom.xml中。然后,您无需在IntelliJ中手动添加它们。

您应按照Guide to installing 3rd party JARs

所述的步骤进行操作

更新: 还应注意,如果您是团队合作,则应将其安装在所有开发人员的本地Maven存储库中(这不切实际)。最好的解决方案是在本地网络上的服务器中安装Maven存储库(例如Nexus,Artifactory或Archia),然后将私有jar文件上传到这些服务器上。然后,所有开发人员都可以在其本地Maven设置中定义本地Maven存储库服务器的地址,并使用该服务器中的工件/库。此外,它还可以作为本地缓存/代理来获取任何Maven工件,并防止对公共Maven存储库的不必要调用。