Maven进阶

1.Maven管理多模块应用

1.1)场景描述

        commonModel:提供公共的基础服务,比如工具类,常量类等等

        bussinessModel:业务模块,是系统真正要实现的业务,依赖于common模块,比如订单管理,财务统计,会员管理等

        application:可发布的web应用,由各个bussinessModel组成,最终满足项目整体需求

        第三方模块:包括各类框架,Spring,Mybatis,日志等.整个应用都是依赖它们完成开发的

Maven进阶_第1张图片

Maven管理多模块应用的实现是互联网项目中多使用分布式开始,那么每个独立的服务都会使用独立的项目进行维护,那么这样就需要使用多模块应用管理,来实现项目的高度统一.

第一种实现方式

首先new一个空项目

Maven进阶_第2张图片

 Maven进阶_第3张图片

 Maven进阶_第4张图片

这样一个空的新项目就建好了.

那么首先我们要有一个父工程 至少是个maven工程

Maven进阶_第5张图片

 Maven进阶_第6张图片

Maven进阶_第7张图片

 Maven进阶_第8张图片

创建子模块  java maven工程

Maven进阶_第9张图片

 Maven进阶_第10张图片

 Maven进阶_第11张图片

 Maven进阶_第12张图片

创建子模块  java maven web工程

Maven进阶_第13张图片

 Maven进阶_第14张图片

 Maven进阶_第15张图片

Maven进阶_第16张图片

 Maven进阶_第17张图片

 假设现在maven-java也想当父工程

Maven进阶_第18张图片

 Maven进阶_第19张图片

 Maven进阶_第20张图片

 Maven进阶_第21张图片

假设各模块间各自需要引入各自的依赖,各自间同一个依赖版本不同

当父类引入这些依赖后,即使子类没有引入,也都有了这些依赖,这样版本也可以统一

Maven进阶_第22张图片

Maven进阶_第23张图片

 

父工程管理依赖,现在这样出现一个问题

Maven进阶_第24张图片

 

在父工程用  加强对所有依赖的管理

 
  

 Maven进阶_第25张图片

 

这样就需要子工程声明式继承父依赖,不能无条件继承

比如说子工程maven-java需要一个mysql依赖

Maven进阶_第26张图片

 比如子工程maven-web需要junit

Maven进阶_第27张图片

 并且都不需要写版本号,这叫做声明式依赖,版本继承自父工程的版本号,这样就各取所需,并且,父工程版本号改变会影响子工程

但是如果子模块里指定依赖的版本号,那么就不会继承自父类

Maven进阶_第28张图片

 

父工程管理依赖的版本号

Maven进阶_第29张图片

 

 这样如果哪个jar包需要升级,直接上面改版本号就行了

这样以第一种方式进行多模块管理就基本完了

创建子工程的时候,java或者web模式都可以,只要是maven工程就行了

第二种方式

先new个父工程

Maven进阶_第30张图片

 Maven进阶_第31张图片

 Maven进阶_第32张图片

 Maven进阶_第33张图片

 要想成为一个Maven父工程,必须满足两要求

1.packaging标签的文本内容必须设置为pom

2.删除SRC目录

Maven进阶_第34张图片

 创建子模块

Maven进阶_第35张图片

 

先建个maven  java 子模块

Maven进阶_第36张图片

 Maven进阶_第37张图片

 Maven进阶_第38张图片

 Maven进阶_第39张图片

 

创建maven web子模块

Maven进阶_第40张图片

 

Maven进阶_第41张图片

 Maven进阶_第42张图片

 Maven进阶_第43张图片

 

比如说现在maven-java-02也想当父工程

还是一样

1.packaging标签文本内容为pom

2.删除src目录

Maven进阶_第44张图片

 Maven进阶_第45张图片

Maven进阶_第46张图片 

 Maven进阶_第47张图片

 Maven进阶_第48张图片

 

还是回到依赖上面

父工程加依赖,子孙后代就都有了  无条件继承

Maven进阶_第49张图片

 那么还是老办法加依赖.子类需要什么声明问父工程拿,父工程控制版本

Maven进阶_第50张图片

 子类需要什么就用声明式问父工程,或爷爷工程拿  如果自己想要个不同与其他的版本的,自己加

Maven进阶_第51张图片

 版本控制和第一种方式一样

注意一点

Maven进阶_第52张图片

 Maven进阶_第53张图片

如何在pom.xml文件指定编译插件的版本 

只需要在父类工程添加

Maven进阶_第54张图片

 

第三种是第一种和第二种的混合使用

你可能感兴趣的:(maven,java,mybatis)