欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

项目打包,报软件包、类不存在问题排查过程 博客分类: JAVA进阶故障排查 maven打包失败找不到软件包编译失败

程序员文章站 2024-03-12 10:51:32
...
项目打包报,软件包、类不存在问题排查过程

一、背景
    吃完午饭回来,看见佐哥和琳妹妹在那里处理问题,好信的我,就在旁边瞄着,看出来,大致的问题现象是项目无法编译,报找不到类文件和包的错误,我心里想这个一般就是确实没有这个类,或者就是这个类和其他类重复了路径和名称,才报这个错误,就这样瞄了一会,看他们试了好多办法都么有解决,我说那我来看看。具体问题报错如下图:

项目打包,报软件包、类不存在问题排查过程
            
    
    博客分类: JAVA进阶故障排查 maven打包失败找不到软件包编译失败
    编译失败,找不到类文件,主要就是这个现象

二、问题点
    问题点很清晰了:编译失败,找不到类,找不到包

三、排查过程
1. 根据我的经验,这类问题出现可能的原因,一种是不存在这个路径和文件,第二种是在其他地方有个路径和文件名一样的重复,导致编译器无法判断,报错找不到。那么接下来沿着这两个方向查找

2. 查询项目文件,确实都是存在的,路径和文件名都对应的上

3. 查找项目中其他的包里面是否存在这个命名路径和类名,看了下也不存在

4. 这样基本的两个判断都排除了,那么基本确定是其他原因导致的,根据以往经验,有没有可能是所依赖的这个文件所在的jar是之前打包的,没有包含进这个文件,清掉maven仓库,重新打包是不是就会好

5. 基于第4点猜测,这边把maven仓库清空,重新打包,发布,发现还是有这个错误。那又排除了一个打包依赖错误导致的原因

6. 那么编译时还找不到类文件,这个文件就有点怪了,我想还是去看看打包的代码和编译后的代码,看看有没有奇怪的地方,看了下打包代码的jar包,发现里面确实没有编译进去报错的类,又看了下src,确实有这个文件,这就奇怪了。继续寻找,

就在我切换代码路径的过程中,突然发现在src源文件路径下,有一个main文件夹,还有一个inner文件夹,而那个找不到的文件夹就在这个inner文件夹下,豁然开朗,原因找到了,就是这原因,maven编译的原理,是找main路径下的java和resources目录来编译的,文件不在main目录下,当然报找不到文件了,我再去项目路径查看下是不是这个原因,如下图:

项目打包,报软件包、类不存在问题排查过程
            
    
    博客分类: JAVA进阶故障排查 maven打包失败找不到软件包编译失败

确实就是这个问题。OK,这下,问题找到了就好解决了

四、解决办法
   既然问题找到了,解决办法就很简单了,把文件都移到main包下面就好了,如下图:

项目打包,报软件包、类不存在问题排查过程
            
    
    博客分类: JAVA进阶故障排查 maven打包失败找不到软件包编译失败

   重新启动项目,解决问题

五、解决过程

1. 把java文件都移动到main路径下,这样maven才能编译
2. 重新maven编译,重启项目,解决问题:

项目打包,报软件包、类不存在问题排查过程
            
    
    博客分类: JAVA进阶故障排查 maven打包失败找不到软件包编译失败

六、问题总结
如果编译时候找不到类或者类路径,解决办法通过有已下几种

1. 是不是文件和路径不存在
2. 是不是文件和路径存在重复
3. 是不是打包依赖的里面不存在或者重复,重新打最新的包,试试
4. 是不是项目路径不符合构建工具路径要求,不是在构建工具指定的目录下,这样构建工具找不到文件。如这次的maven,文件一定要在src/main/java和src/main/resources目录下


七、为什么会发生?

对maven构建工具编译原理了解的不深刻,所以学东西一定要了解其本质,也就是心法。哈哈哈
  • 项目打包,报软件包、类不存在问题排查过程
            
    
    博客分类: JAVA进阶故障排查 maven打包失败找不到软件包编译失败
  • 大小: 131.7 KB
  • 项目打包,报软件包、类不存在问题排查过程
            
    
    博客分类: JAVA进阶故障排查 maven打包失败找不到软件包编译失败
  • 大小: 6.5 KB
  • 项目打包,报软件包、类不存在问题排查过程
            
    
    博客分类: JAVA进阶故障排查 maven打包失败找不到软件包编译失败
  • 大小: 6.1 KB
  • 项目打包,报软件包、类不存在问题排查过程
            
    
    博客分类: JAVA进阶故障排查 maven打包失败找不到软件包编译失败
  • 大小: 19.2 KB