• 10 Maven高级使用


    Maven是一个项目管理工具,主要作用是在项目开发阶段对Java项目进行依赖管理和项目构建。
    主要完成:清理,编辑,测试,报告,打包,部署等功能。

    1、Maven依赖传递

    当引用一个包的时候,会连带引入相关联的包,例如:

    2、Maven依赖冲突

    当引入不同版本的包是,如果这两个包都依赖某个子包,就会导致这个子包会出现两个不同的版本被引入。

    解决冲突的方法

    2.1、默认规则

    使用第一声明者优先原则,谁放在前边,就用谁引入的子包。

    使用路径近者优先原则,导入依赖层次越深,优先级越低,直接导入优先级高于依赖导入。

    2.2、排除依赖

    将包的依赖导入给排除掉。

    2.3、版本锁定

     

     通过dependencies再导入版本的时候,就不需要再指定版本了。

    3、分模块构建工程

    在企业项目开发过程中,由于项目规模庞大,业务复杂,参与的人员比较多,一般会通过合理的模块拆分将一个大型的项目拆分为N多个小模块,分别进行开发。而且拆分出的模块可以非常容易的被其他模块复用。

    常见的拆分方案有两种:

    第一种:按照业务模块进行拆分,拆分成用户模块,订单模块,购物车模块,每个模块对应就是一个maven工程。

    第二种:按照层进行拆分,持久层,业务层,表现层,每个层对应就是一个maven工程。

    不管那种拆分方法,

    不管用那种拆分方式,通常都会提供一个父工程,将一些共用的代码和配置提取到父工程中进行统一管理和配置。

    公共代码放在parent中。不同工程根据层次关系相互依赖。

    3.1、工程继承

    子工程继承父工程,从父工程中继承已经引入的Jar包。

    父工程打包方式必须是pom,子工程通过parent标签进行父工程的继承,parent内部的artifactId就是父工程的标识。

    3.2、工程聚合

    在maven工程的pom.xml文件中,可以通过<modules>标签将其他Maven工程聚合到一起,聚合的目的是为了进行统一操作。

    例如拆分后的maven工程有多个,要进行打包,就需要针对每个工程分别执行打包指令,这个时候可以通过<modules>标签将这些工程统一聚合到一个maven工程中,需要打包的时候,只需要在此工程中执行一次打包命令,其下被聚合的工程都会被打包。

    在父工程中,将其它工程集合在一起,未继承父工程的工程也可以聚合进来。

    打开这个窗口之后,工作目录设置成聚合的工程,就可以统一执行相关命令。 

    在父工程中锁定包的版本,具体引用可以放在子包里边。

    4、操作例子

     别人的开源源码:https://github.com/owenma/parent

  • 相关阅读:
    Windows server 2008 R2远程桌面授权破解方法
    微软 windows server 2019 中文版 原版iso镜像下载地址及密钥
    Everything——支持快速搜索文件夹
    相对路径(根目录、当前目录、上级目录)
    LinkShellExtension (软连接、硬连接、符号连接)工具教程
    oracle 获取表信息
    python3.6 安装 pycrypto
    项目问题记录
    Django得缓存
    Django得信号
  • 原文地址:https://www.cnblogs.com/feihusurfer/p/15920882.html
Copyright © 2020-2023  润新知