今天在用intelliJ 开发的时候,遇到一个头疼的问题。 自己明明把jar包添加到maven的pom.xml 里面了,但是 IntelliJ死活识别不了类库。当选择代码提示的时候,他还让我添加 maven的 依赖。但是我其实已经在pom.xml已经添加依赖了。
产生这个问题的原因
IntelliJ IDE的类库和 项目工程的pom里面的类库是两码事。
IntelliJ IDE的类库依赖关系保存在工程目录的 *.iml文件里面,IDE只认这个文件里面的类库。
开发中项目的以来的类库配置在pom.xml
解决方法
那么问题来了,我们在pom文件里面新增了 dependence如何加到 *.iml文件里面呢?
我这边有三种方法,其中前两种非常不建议使用,第三种是正道。
方法1 (不建议采用)
当你在 pom.xml文件里面增加了新的 dependence以后, 然后在 *.iml里面也增加相应的依赖。这里举一个例子:
比如我们在pom里面新增了 jms的依赖
org.springframework
spring-jms
1.7.22
然后我们需要在*.iml里面增加这么一行
方法2(不建议采用)
方法2 的原理和方法1的原理一样,只不过方法2是在界面上操作,来为*.iml增加一个新的依赖。步骤如下:
比如我们在pom里面新增了 jms的依赖
org.springframework
spring-jms
1.7.22
然后在 IntelliJ界面上 如下操作
File -> Project Structure -> 弹出框里面选择左边的 Libraries 选项 ->
点击 坐上角的 "+" 小按钮 -> 选择 “From Maven ...” -> 输入 "org.springframework:spring-jms:4.3.6.RELEASE" -> 点击右边的 "..." 按钮搜索 --> 选择你要的依赖,点击添加即可。
如果觉得自己网速太慢,搜索maven迟迟出不来的话,可以选择 从本地加载jar包的形式,操作如下:
File -> Project Structure -> 弹出框里面选择左边的 Libraries 选项 ->
点击 坐上角的 "+" 小按钮 -> 选择 “Jave” -> 选择 你的maven 仓库的目录中的jar包
经过上面操作我们会发现其实上面操作结束以后,IDE会自动在 *.iml里面增加一行依赖。
方法3(官方推荐)
上面两种方法都有一个缺陷,就是需要手工增加,如果不小心手工增加的类库到了版本和 pom里面的版本不一致,那么会出现致命的问题。那么方法3就是:用户在pom.xml中增加依赖,IntelliJ 会自动的增加依赖。操作如下:
打开Preferences弹框 --> 左侧侧边栏中选择 "Build, Execution, Deployment" --> Build Tools --> Maven --> Importing --> 勾选 "Import Maven Projects automatically" 复选框 --> 保存。
然后需要情况缓存重启IDE, 操作如下:
File -> Invalidate Caches -> 选择 "Invalidate and Restart" 即可解决。