先赞后看,养成习惯!!!❤️ ❤️ ❤️
文章码字不易,如果喜欢可以关注我哦!
如果本篇内容对你有所启发,欢迎访问我的个人博客了解更多内容:链接地址
命令 |
作用 |
mvn compile |
编译主程序 src/main ,生成target目录,存放编译主程序生成的字节码文件,输出到 target/classes |
mvn test-compile |
编译测试程序 src/test ,生成target目录,存放编译测试程序生成的字节码文件,输出到 target/test-classes |
mvn test |
编写的测试代码并生成测试报告(目前对于后端开发没有太大作用) |
mvn package |
将项目打成jar包 |
mvn clean |
清空项目本地编译目录 |
mvn install |
将项目 安装到本地仓库(多个项目相互依赖 相互使用时.) |
(1)按照功能拆分
我们现在的项目都是在一个模块中,比如前面的SSM整合开发。虽然这样做功能也都实现了,但是也存在了一些问题,我们拿银行的项目为例来聊聊这个事。
上面三个场景出现的时间是不相同的,如果非要把三个场景的模块代码放入到一个项目,那么当其中某一个模块代码出现问题,就会导致整个项目无法正常启动,从而导致银行的多个业务都无法正常班理。所以我们会==按照功能==将项目进行拆分。
(2)按照模块拆分
比如电商的项目中,有订单和商品两个模块,订单中需要包含商品的详细信息,所以需要商品的模型类,商品模块也会用到商品的模型类,这个时候如果两个模块中都写模型类,就会出现重复代码,后期的维护成本就比较高。我们就想能不能将它们公共的部分抽取成一个独立的模块,其他模块要想使用可以像添加第三方jar包依赖一样来使用我们自己抽取的模块,这样就解决了代码重复的问题,这种拆分方式就说我们所说的==按照模块==拆分。
我们现在已经能把项目拆分成一个个独立的模块,当在其他项目中想要使用独立出来的这些模块,只需要在其pom.xml使用标签来进行jar包的引入即可。
其实就是依赖,关于依赖管理里面都涉及哪些内容,我们就一个个来学习下:
我们先来说说什么是依赖:
依赖指当前项目运行所需的jar,一个项目可以设置多个依赖。
因为有依赖传递的存在,就会导致jar包在依赖的过程中出现冲突问题,具体什么是冲突?Maven是如何解决冲突的?
这里所说的==依赖冲突==是指项目依赖的某一个jar包,有多个不同的版本,因而造成类包版本冲突。
例如在maven_04_dao的pom.xml,在引入maven_03_pojo的时候,添加optional
true
......
我们的项目已经从以前的单模块,变成了现在的多模块开发。项目一旦变成了多模块开发以后,就会引发一些问题,在这一节中我们主要会学习两个内容聚合和继承,用这两个知识来解决下分模块后的一些问题。
==聚合==
关于聚合具体的实现步骤为:
步骤1:创建一个空的maven项目
步骤2:将项目的打包方式改为pom
说明:项目的打包方式,我们接触到的有三种,分别是
步骤3:pom.xml添加所要管理的项目
../maven_02_ssm
../maven_03_pojo
../maven_04_dao
步骤4:使用聚合统一管理项目
当compile被点击后,所有被其管理的项目都会被执行编译操作。这就是聚合工程的作用。
说明:聚合工程管理的项目在进行运行的时候,会按照项目与项目之间的依赖关系来自动决定执行的顺序和配置的顺序无关。
聚合的知识我们就讲解完了,最后总结一句话就是,聚合工程主要是用来管理项目。
步骤1:创建一个空的Maven项目并将其打包方式设置为pom
因为这一步和前面maven创建聚合工程的方式是一摸一样,所以我们可以单独创建一个新的工程,也可以直接和聚合公用一个工程。实际开发中,聚合和继承一般也都放在同一个项目中,但是这两个的功能是不一样的。
步骤2:在子项目中设置其父工程
分别在maven_02_ssm,maven_03_pojo,maven_04_dao的pom.xml中添加其父项目为maven_01_parent
com.itheima
maven_01_parent
1.0-RELEASE
../maven_01_parent/pom.xml
步骤3:优化子项目共有依赖导入问题
步骤4:优化子项目依赖版本问题
junit
junit
4.12
test
刷新完会发现,在maven_02_ssm项目中的junit依赖并没有出现,所以我们得到一个结论:
标签不真正引入jar包,而是配置可供子项目选择的jar包依赖
子项目要想使用它所提供的这些jar包,需要自己添加依赖,并且不需要指定
junit
junit
test
注意:这里就不需要添加版本了,这样做的好处就是当父工程dependencyManagement标签中的版本发生变化后,子项目中的依赖版本也会跟着发生变化
总结来说,继承可以帮助做两件事
最后总结一句话就是,父工程主要是用来快速配置依赖jar包和管理项目中所使用的资源。
两种之间的作用:
聚合和继承的相同点:
聚合和继承的不同点: