当前位置:   article > 正文

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包),对这些包运行集成测试,验证集成测试,安装验证完的包到本地仓库去,然后把安装完的包部署到远程仓库。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/557245
推荐阅读
相关标签
  

闽ICP备14008679号