项目打包报,软件包、类不存在问题排查过程
一、背景
吃完午饭回来,看见佐哥和琳妹妹在那里处理问题,好信的我,就在旁边瞄着,看出来,大致的问题现象是项目无法编译,报找不到类文件和包的错误,我心里想这个一般就是确实没有这个类,或者就是这个类和其他类重复了路径和名称,才报这个错误,就这样瞄了一会,看他们试了好多办法都么有解决,我说那我来看看。具体问题报错如下图:
编译失败,找不到类文件,主要就是这个现象
二、问题点
问题点很清晰了:编译失败,找不到类,找不到包
三、排查过程
1. 根据我的经验,这类问题出现可能的原因,一种是不存在这个路径和文件,第二种是在其他地方有个路径和文件名一样的重复,导致编译器无法判断,报错找不到。那么接下来沿着这两个方向查找
2. 查询项目文件,确实都是存在的,路径和文件名都对应的上
3. 查找项目中其他的包里面是否存在这个命名路径和类名,看了下也不存在
4. 这样基本的两个判断都排除了,那么基本确定是其他原因导致的,根据以往经验,有没有可能是所依赖的这个文件所在的jar是之前打包的,没有包含进这个文件,清掉maven仓库,重新打包是不是就会好
5. 基于第4点猜测,这边把maven仓库清空,重新打包,发布,发现还是有这个错误。那又排除了一个打包依赖错误导致的原因
6. 那么编译时还找不到类文件,这个文件就有点怪了,我想还是去看看打包的代码和编译后的代码,看看有没有奇怪的地方,看了下打包代码的jar包,发现里面确实没有编译进去报错的类,又看了下src,确实有这个文件,这就奇怪了。继续寻找,
就在我切换代码路径的过程中,突然发现在src源文件路径下,有一个main文件夹,还有一个inner文件夹,而那个找不到的文件夹就在这个inner文件夹下,豁然开朗,原因找到了,就是这原因,maven编译的原理,是找main路径下的java和resources目录来编译的,文件不在main目录下,当然报找不到文件了,我再去项目路径查看下是不是这个原因,如下图:
确实就是这个问题。OK,这下,问题找到了就好解决了
四、解决办法
既然问题找到了,解决办法就很简单了,把文件都移到main包下面就好了,如下图:
重新启动项目,解决问题
五、解决过程
1. 把java文件都移动到main路径下,这样maven才能编译
2. 重新maven编译,重启项目,解决问题:
六、问题总结
如果编译时候找不到类或者类路径,解决办法通过有已下几种
1. 是不是文件和路径不存在
2. 是不是文件和路径存在重复
3. 是不是打包依赖的里面不存在或者重复,重新打最新的包,试试
4. 是不是项目路径不符合构建工具路径要求,不是在构建工具指定的目录下,这样构建工具找不到文件。如这次的maven,文件一定要在src/main/java和src/main/resources目录下
七、为什么会发生?
对maven构建工具编译原理了解的不深刻,所以学东西一定要了解其本质,也就是心法。哈哈哈
- 大小: 131.7 KB
- 大小: 6.5 KB
- 大小: 6.1 KB
- 大小: 19.2 KB
分享到:
相关推荐
5. 错误处理和日志记录:为确保过程的可靠性,类可能包含了错误捕获和日志记录机制,以便于调试和排查问题。 理解这些知识点后,开发者可以依据自身需求,通过修改和扩展这个“能打包数据库文件的类”,轻松地在...
其次,横河DCS软件包还可能包括人机界面(HMI)软件,这是一类允许操作员监控和控制生产过程的应用程序。通过HMI,工作人员可以查看实时数据,设置和修改控制参数,以及接收报警信息。横河的HMI通常提供用户友好的...
"BT软件包1.0测试版"是一个专为IT专业人士设计的工具集合,主要用于移动应用自动化测试和故障排查。这个压缩包包含了一系列重要的组件和工具,让我们逐一深入了解它们的功能和用途。 首先,我们要关注的是"APPium...
- **监控与日志**:设置合适的监控和日志策略,以便于排查问题和分析性能。 7. **安全考虑** - **认证与授权**:RabbitMQ支持用户身份验证和权限控制,需要为不同的用户或角色设置适当的访问权限。 - **网络隔离...
4. **测试与调试**:打包过程可以包含调试信息,便于后期的错误排查和性能优化。 5. **发布效率**:自动化打包流程可以显著提高发布速度,减少人工错误。 **二、手动打包工具的种类** 1. **IDE内置工具**:如...
全志T113-S3 ADB软件包是一款专为基于全志T113-S3芯片的设备设计的Android调试工具集。ADB(Android Debug ...对于需要在全志T113-S3平台上进行软件开发、测试和故障排查的专业人士来说,这是一个必不可少的工具集。
5. **打包问题**:OpenCMIS的OSGi打包可能存在问题,比如未将所有必要的类或资源包含在内,或者bundle的结构不符合OSGi规范。 6. **启动顺序**:在某些情况下,OSGi容器会按照特定的顺序启动bundle,如果依赖的...
然而,在实际使用过程中,用户可能会遇到各种问题,尤其是在使用特定版本如PWC-8.8时,配合WindRiver ZIP工具进行项目打包时,可能出现一些不兼容或操作上的困扰。本文将深入探讨这些问题,并提供相应的解决方案。 ...
在准备集创赛的过程中,环境配置是至关重要的一步,它直接影响到项目的运行和实验效果。虽然这个压缩包中的方法最终未被采用,但它记录了一段宝贵的学习和实践历程。这里,我们将深入探讨环境配置的相关知识点,以及...
9. **错误排查**:了解常见的RPM问题及其解决方案,例如依赖性冲突、权限问题、文件冲突等。 通过深入阅读"max-rpm.pdf"文档,读者不仅可以掌握创建RPM软件包的基础知识,还能学习到如何最大化利用系统资源,提升...
2. PATCH.ERR:这个名字可能指的是错误日志或补丁应用过程中产生的错误记录,用于排查和修复问题。 3. Welcome.html:这可能是软件启动时显示的欢迎页面,包含软件介绍、版本信息、使用指南等内容。 4. LICENSE:...
这样的文档对于开发者来说是至关重要的,因为它能够帮助他们理解如何使用OpenEmbedded构建系统,以及如何为特定项目定制合适的软件包。 标签"oe"进一步确认了这个压缩包与OpenEmbedded项目直接相关。OpenEmbedded...
这个打包软件的出现,极大地简化了邮件服务器搭建的复杂性,使得不具备深厚技术背景的用户也能快速上手。 【知识点详解】 1. **Postfix**:Postfix是一款高效、安全的邮件传输代理,由Wietse Venema开发。它是替代...
4. **构建过程**: "构建"一词可能指的是 collectd-deb 提供了构建自定义软件包的功能,这可能涉及到从源代码编译、打包,以及创建DEB格式的安装文件。 5. **系统监控**: collectd-deb 可能具有实时监控系统资源的...
1. 邮件验证:检查电子邮件地址的有效性,防止无效或不存在的邮件地址导致的邮件发送失败。 2. 弹回分类:识别并分类不同类型的邮件弹回,如暂时不可达、永久不可达等。 3. 错误处理:处理邮件服务器返回的错误代码...
总之,软件包工程师是一个结合了技术深度和项目管理的角色,需要具备扎实的技术基础,优秀的解决问题能力,以及良好的沟通协作技巧。对于求职者来说,展示这些能力并在简历中突出这些经历和成就,将有助于吸引潜在...
6. **验证和调试:** 部署后,检查设备是否正常启动并运行,如果发现问题,使用诊断工具进行排查。 总的来说,OpenWrt 的构建系统为开发者提供了极大的灵活性,使其能够创建功能丰富的、高度定制的路由器固件。无论...
在本文中,我们将详细介绍如何配置Ant、JUnit和SVN,这三个工具在Java开发中的重要性以及它们的安装过程。 首先,Ant是一个基于Java...同时,通过SVN进行版本管理,可以有效追踪代码的变更,便于团队协作和问题排查。
- **问题排查**:解决编译过程中遇到的各种错误和警告。 ##### 3.8 构建Debian包 - **打包工具**:使用`dpkg-buildpackage`等工具。 - **签名验证**:对生成的包进行签名。 ##### 3.9 实际案例:在Ubuntu上编译...
- **非可移植源代码示例**:考虑 C 函数在不同平台上可能不存在的情况,例如 `fork()` 在 Windows 上不可用。 - **解决方案**:通过 Autotools 自动检测可用的功能并进行适当的配置。 ##### 统一的构建过程 - **...