Maven项目中模块间类无法加载问题

Maven项目在编译过程中遇到,功能模块在引用基础模块的接口类找不到的问题。

基础模块能编译成功,但是功能模块在引用相关类的时候报错无法找到相关类。因为项目之前在用确认没有变更过jdk环境等,确认应该是编译的class没有引入到具体的架包。本人对maven项目编译这块了解不深,于是请教度娘最终解决。
解决过程很简单:
在这里插入图片描述
分析原因:
maven项目中模块间的相互引用其实说到底还是对架包的引用,maven通过install把基础模块打成架包保存在maven的本地仓库,然后提供给其他模块引用。

Maven install 作用:

  1. 将项目打包(jar/war),然后放到项目下的 target 目录下
  2. 同时将上述打包结果放到本地仓库的相应目录中,供其他项目或模块引用

扩展maven生命周期Liftcycle:
文章来源:https://blog.csdn.net/mr_orange_klj/article/details/82153945
Maven是基于一个build lifecycle的中心概念,意味着构建和发布特定项目的过程是明确定义的。对于人们构建一个项目,这意味着只需要学会少数命令来构建任意maven项目,然后pom会确保他们会得到他们想要的结果。
有三种内置的build lifecycle:default,clean,site。default生命周期处理项目的部署,clean生命周期处理项目的清理,site生命周期生成站点文档。

Build Lifecycle由Phase组成
每种lifecycle由不同的一组phase组成,一个phase代表lifecycle的一个阶段。
默认lifecycle执行的phase:

validate:验证项目的正确性以及包含所有必要的信息
compile:编译源码
test:编译和运行测试代码
package:把编译好的源码打成包,如jar
integration-test
verify
install:把项目安装到本地仓库中去,作为本地其他项目的依赖
deploy:把最终的包拷贝到远程仓库上和其他开发者和项目分享
这些phase(包括没有列出来的phase)会被顺序地执行来完成default lifecycle。以上面的phase为例,这意味着当使用默认的lifecycle时,Maven会首先验证项目,然后尝试编译源码,运行测试,把二进制代码打包(如jar包),对这些包运行集成测试,验证集成测试,安装验证完的包到本地仓库去,然后把安装完的包部署到远程仓库。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值