maven 多module环境下打包出现找不到包的问题及解决方案

maven 多module环境下打包出现找不到包的问题及解决方案

问题的出现

在一个结构清晰的项目中,一个没有module划分的结构显然不是最佳实践。有人会说可以在同一个Project中定义不同的包名及包路径来做区分,但这样当功能复杂后并不可取。

当然,如果你的项目足够简单,比如只是提供一个很简单的微服务,没有分层治理的概念,那么则不需要关心这个问题了。

下面就Spring Boot环境中多module打包的注意事项列举如下,希望对大家有所帮助。

问题演示

新建所需要的module模块,在此示例中新建两个module,bingo-core和bingo-web。其中bingo-core作为封装服务提供给bingo-web使用,bingo-web作为我们的工程的最终jar包提供服务。为了说明问题,我们仍然采用spring boot框架来构建这两个module。

具体新建步骤可参考《从0到1,只需两分钟》这篇文章,不同的是,在新建的时候选择新建module即可。新建完毕后,工程结构如下图所示。注意此时父pom文件的打包方式需要变更成pom,不再是jar或者war。

在这里插入图片描述

问题的解决

那么问题就是这里了,这个问题和spring boot的打包方式有关系,spring boot默认将每个module打包成一个fat jar,这个jar包和我们正常使用的jar包内部的结构是不相同的,如下图所示,fat jar包含了直接运行所需要的所有信息(包含内嵌的容器,如果是一个web应用的话),那么类的加载路径此时就发生了变化,所以在编译时会提示找不到引用类。

所以在公共common的module配置上加上下面的(pom)

在这里插入图片描述

转载于:

https://www.cnblogs.com/zyfd/p/9883473.html

https://blog.csdn.net/persistencegoing/article/details/86718448

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于 Maven 打包过程中出现的 "不到符号" 错误,可能有多种原因和解决办法。以下是一些常见的解决办法: 1. 依赖未正确导入:请确保你的 pom.xml 文件中的依赖项正确导入,并且使用的版本号是有效的。你可以尝试运行 `mvn clean install` 命令清理并重新安装依赖。 2. 依赖冲突:如果你的项目中存在多个版本的相同依赖,可能会导致不到符号的错误。在 pom.xml 文件中检查依赖项,并解决任何冲突。 3. 编译错误:如果你的代码中存在编译错误,可能会导致不到符号的错误。请确保你的代码没有语法错误,并尝试修复任何编译错误。 4. 重新生成项目:有时候项目文件可能会损坏,导致编译错误。你可以尝试删除目标文件夹(一般是 target 文件夹)并重新生成项目。 5. 检查类路径:确保你的项目配置正确,并且类路径正确设置。你可以检查 pom.xml 文件或 IDE 中的构建路径设置。 6. 检查依赖库:如果你使用了自定义的依赖库,可能需要手动将其导入到项目中。确保库文件存在,并正确配置在构建路径中。 7. 更新 Maven 插件:如果你使用的是旧版的 Maven 插件,可能会导致一些问题。请尝试更新 Maven 插件到最新版本,并重新构建项目。 如果以上方法仍然不能解决问题,建议提供更多的错误信息和项目配置细节,以便更具体地帮助你解决问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值