今天因为公司不能用idea商业版来开发了,所以切换成idea社区版,遇到了springboot项目启动不起来问题。原因是找不到某一些maven中的jar包类,排查问题很久,发现是.iml文件中<orderEntry scope = “PROVIDED”导致,将其替换为默认即可。
.iml文件是idea对module配置信息之意 information of module,是IntelliJ IDEA自动创建的模块文件,用于Java应用开发,存储一些模块开发相关的信息,比如一个Java组件,插件组件, Maven组件等等,还可能会存储一些模块路径信息, 依赖信息以及别的一写设置。
Dependency Scope
在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:
* compile,缺省值,适用于所有阶段,会随着项目一起发布。
* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
* system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
参考:https://blog.youkuaiyun.com/xqk709008281/article/details/79271157