• maven项目运行错误:找不到或无法加载到xxx类、亦或者xml(yml、properties)等等文件


    复习:idea中几个常见的maven命令与target文件的关系
    在这里插入图片描述

    maven项目的几个指令
    mvn clean :清理maven工程,执行该命令会将target中的文件清空
    mvn compile :执行该命令会将target中的文件重新编译
    mvn install :执行该命令会在target文件中生成
    mvn package:执行该指令会将maven项目打包

    理论:在idea中运行springBoot项目时,首先会执行构建工作,构建的结果是在target文件夹下生成一系列编译后的源码
    在这里插入图片描述
    理论知识点介绍完了,下面开始介绍实战——找不到或无法加载到类xxx、亦或者xml(yml、properties)等等文件的场景
    错误情景:找不到或无法加载到xxx类,经过分析发现在target文件夹下没有生成对应的类文件
    在这里插入图片描述
    解决方案:依次点击图中1、2、3、4步骤,即可在target文件夹下生成编译后的文件
    在这里插入图片描述
    解决完找不到或无法加载到xxx类后,继续运行项目发现找不到或无法加载到xml(yml、properties)等等文件,经过理论分析发现在生成的target目录里
    不存在resources相关文件的问题。

    经过归纳总结具体原因有三条:
    (1)检查moduls配置有没有将resource目录当成Resources
    moduls配置没有将resource目录当成Resources,需要手动配置,配置过程
    Project Structure----Modules----选中对应文件夹----选中source----Apply
    在这里插入图片描述
    如果配置成功了,查看imi文件,会增加一行
    在这里插入图片描述
    (2)在配置文件有没有配置resource标签

    
        
        
            
                src/main/java
                
                    **/*.properties
                    **/*.xml
                
                
                true
            
            
                src/main/resources
                
                    **/*.properties
                    **/*.xml
                    **/*.yml
                    **/*.yaml
                
                true
            
          
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    (3)查看pom.xml文件里,当前项在打包时是否是打成jar包

    pom 文件存在 <packaging>pom</packaging>,需要修改为 <packaging>jar</packaging>问题解决
    
    • 1

    思考

    为什么子级文件会出现pom,第一次建错文件,在子级moudel下新建,如果在子集文件新建会自动生成<packaging>pom</packaging>
    packaging
    pom 不会对文件进行编译,自然也就不会加载resources相关文件
    jar 将resources相关文件加载到target下
    packaging默认属性是jar,所以正常情况下不会出现问题
    
    • 1
    • 2
    • 3
    • 4
    • 5

    总结:

    无论是在idea中、还是在eclipse中,无论是一个maven项目,还是一个普通的web项目。当我们启动程序时,编译器都会对java类以及xml(yml、properties)等等文件进行编译,最终编译的结果都会存储到一个相应的文件夹里,jvm最终运行的也是编译器编译后的.class文件(而非.java文件)。所以当我们遇到项目运行错误:找不到或无法加载到xxx类、亦或者xml(yml、properties)等等文件的问题时,首先就去构建后项目编译文件存储的文件夹下寻找是否存在相应的文件,如果不存在则证明我们的代码在编译构建过程中存在问题,此时我们专注于这里解决编译构建时文件丢失的问题。

  • 相关阅读:
    新生儿早产:原因、科普和注意事项
    c#数组排列系列1
    前端实现实时消息提醒消息通知
    11种增加访问者在网站上平均停留时间的技巧
    Linux基本指令
    Acwing 906. 区间分组
    计算机网络基础知识-网络协议
    免费小程序商城搭建之b2b2c o2o 多商家入驻商城 直播带货商城 电子商务b2b2c o2o 多商家入驻商城 直播带货商城 电子商务
    南瓜科学新品上线 开辟益智玩具新世界
    在达梦数据库上使用密码设备上的国密算法详细操作指南
  • 原文地址:https://blog.csdn.net/CNCDXX_88/article/details/128124956