文章目录

  • 前言
  • 一、报错记录
  • 二、报错解决
  • 总结



前言

今天遇到一个问题,使用idea进行项目构建的时候,一直报程序包xxx.xxx不存在,费了好大功夫终于解决。原因和上次修改项目之后必须执行maven clean install才生效一样,在次记录。


一、报错记录

项目需要依赖外部的jar包,在将外部的jar包都进行了导入。

1、setting->project structure->libraries,添加新的项目库,选择Java

idea java编译程序包不存在 idea编译提示程序包不存在_spring boot


2、在Modules里删除报红的依赖,然后添加新的依赖:选择library,然后点击刚刚添加的库文件

idea java编译程序包不存在 idea编译提示程序包不存在_intellij-idea_02


点击Add Selected->Apply->OK,正常情况下就添加外部依赖成功了。

idea java编译程序包不存在 idea编译提示程序包不存在_idea java编译程序包不存在_03


但是在进行编译的时候,报错xxx.xxx包找不到:

idea java编译程序包不存在 idea编译提示程序包不存在_maven_04


在pom.xml文件中添加该包对应的依赖之后,这个依赖找不到的错误不报了,但是报了其他依赖找不到的错误:

添加json的依赖包:

idea java编译程序包不存在 idea编译提示程序包不存在_jar包_05


报另一个依赖找不到的错

idea java编译程序包不存在 idea编译提示程序包不存在_jar包_06

二、报错解决

其实在pom.xml文件中添加了对应的依赖,该依赖不报错之后,就应该知道出现这种情况的原因了。项目的编译工作其实是maven在做,而不是由idea进行。查看settings->Build, Execution、Deployment->Build Tools->Maven->Runner

idea java编译程序包不存在 idea编译提示程序包不存在_jar包_07


果然Delegate IDE build/run actions to Maven被勾选上了,原因就出在了这里,如果勾选上这个,会导致idea将构建和运行工作交由maven来做,而maven并没有引入这些包的依赖。

之前有一次每次在修改完项目都必须maven clean install也是一样的原因,将项目的构建和运行工作交给了maven,所以当项目发生改动时,必须执行maven clean install 来重新构建项目,改动才生效,否则重启项目,改动仍然不会生效。


总结

这是一次深刻的踩坑经历,Delegate IDE build/run actions to Maven选项一定不要轻易勾选,除非确定将项目的构建和运行工作交由maven来做。一旦勾选上,在依赖的jar包是外部jar包时,项目构建就不能通过,如果依赖的jar包由maven管理,那么在项目有改动的时候必须maven clean install才能生效。