maven标签详解

未分类 发表评论

Maven的简单介绍

 

1:下载后的maven中有四个文件夹,分别是bin,boot,conf,lib

 bin:包含mave的运行脚本,在命令行中输入mvn就会调用这些脚本,其中m2.conf是一个配置文件

  boot:包含了一个类加载器的框架,用它加载自己的类库

 conf:里面是配置文件

  lib下是maven运行时所包含的类库

 

2:maven中的常用标签

 groupId:的值就是项目的包名

  artifactId:的值是模块名,建议使用项目名进行标识

  version:版本

  packaging:打包的格式,默认jar包  如下图

  dependencies:依赖列表 (后面为依赖列表里用到的标签)

  dependency:依赖项

  optional:设置依赖是否可选 默认为false表示继承的依赖 true表示必选显示已引入该依赖

 

 

3:maven的命令;

  mvncompile:对该项目进行编译

  mvntest:测试的

  mvnpackage:对mvn进行打包

  mvnclean:删除

  mvninstall 安装jar包到本地仓库中

 

 

4:maven中使用插件

  如使用Source插件:用于将源码打包

 

上图的意思是使用source插件,在package阶段,运行source

 

 

 

5:maven中的依赖关系

   依赖范围

   依赖传递:

      D→C→B→A  D在导入C的依赖时就自动获得了B和A的依赖

       如果这时D不想要A的依赖,只需要使用标签排除A就能去除掉A及其A内部所有依赖的包,如下图所示

 

 

 

   依赖冲突:指通过依赖传递同时依赖了同一个jar包的不同版本
        短路优先原则:会优先解析最短的依赖路径上的jar包版本,如果路径长度相同,则谁先声明,先解析谁

        同样是D→C→B→A的场景,B依赖了commons-io2.5版本,C依赖了commons-io 2.0版本这时D会按照短路优先原则解析C中的2.0版本而非B中的2.5版本

      

 

 

6:maven的聚合和继承

聚合:把其它maven项目聚合在一起,install打包到仓库时会将所有聚合在一起的maven项目打包

继承:一个maven项目可以继承一个<packaging>为pom包的maven项目,从而使用里面定义版本的jar 具体如下图

 

父类的maven

子类的maven

 

在聚合和继承中常用的标签

<properties>:在其中自定义标签,然后可以在其它地方通过${定义的标签}来引用标签的值

<modules>:在此标签内通过<module>标签定义聚合在一起的maven项目有哪些

<dependencyManagement>:在此标签内引入的jar包不会在此项目中使用

<parent>:次标签用于设置继承哪个maven项目

发表评论

电子邮件地址不会被公开。 必填项已用*标注

昵称 *