发表于: 2017-02-07 23:54:00

5 2017


一.今天学习maven中的pom.xml详解,看了很多文档,基本上可以理解,然后用自己的话重新描述出来

pom.xml文件是Maven进行工作的主要配置文件(是否可以简单类比理解为属性”?就是说pom.xml里面包含了很多关于项目的属性,我们可以通过修改它影响整个项目)。在这个文件中我们可以配置Maven项目的groupIdartifactIdversionMaven项目必须的元素;可以配置Maven项目需要使用的远程仓库;可以定义Maven项目打包的形式;可以定义Maven项目的资源依赖关系等等。对于一个最简单的pom.xml的定义必须包含modelVersiongroupIdartifactIdversion这四个元素,当然这其中的元素也是可以从它的父项目中继承的。

maven中的项目和实际的项目不是一一对应的,一般项目在maven中会被分解成很多个模块

mavenpom中包含很多标签

声明标签的描述一般夹在两个<>中间

<project……>:根元素,包含一些约束的信息

<modelVersion>声明项目描述符遵循哪一个POM模型版本,一般是固定的,也是必须的元素。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性.

接下来几个元素声明坐标信息:

    <groupId>:主项目标识(一般和包名一样)反写的公司网址+项目名

<artifactId>: 构件的标识符,项目名+模块名

<version>:当前项目的版本号,例如LOL项目的几点几版本

       比如:0.0.1

 第一个0表示大版本号

    第二个0表示分支版本号

    第三个0标识小版本

    snapshot快照alpha内测beta公测Release稳定GA正式发布

<packaging>打包方式,默认是jar,另外还有war zip pom

<name>:项目描述名, Maven产生的文档用

<url>项目主页的URL/项目的地址 Maven产生的文档用(不太理解什么意思)

<description>项目描述

<developers>:开发人员列表

<licenses>:许可证信息

<organization>:组织信息

<properties>是为pom定义一些常量,在pom中的其它地方可以直接引用。

       比如声明了<file.encoding>UTF-8</file_encoding>,那么在其他地方用

       ${file.encoding}即可得到UTI-8

 

还有比较重要的<dependencies>依赖列表,里面包括一些依赖项<dependency>通过在<dependency>里设置坐标(包括groupId,artifactId,version,type,scope)来指定依赖位置

其中,type: 依赖类型,默认类型是jar; 

scope: 指依赖范围,用来控制依赖与三种classpath的关系

<dependencyManagement>依赖管理,也可以声明依赖列表,里面包含多个依赖,但是不会被运行,这个标签主要是定义在父模块中,给子模块继承使用,

<build>为构件行为提供支持,

       包含<plugins>插件,里面可以包含多个,

<parent>父项目的坐标。里面需要包含坐标信息

<modules>聚合,指定多个模块一起进行编译

 

maven中三种classpath:编译,运行,测试

依赖传递:A依赖B,B依赖C,这时可以说A依赖C,这就是依赖传递

依赖冲突时,遵循两条原则

       1.短路优先

       2.先声明先优先,按照<dependency>中设置依赖坐标的先后来判定优先

maven中聚合和继承:先新建一个项目,将它的packaging该为pom,然后使用modules标签将需要聚合的项目加入,就可以将这些项目聚合起来一起运作


二.明天计划:

1.在Eclipse中实操代码设置pom,把上面的内容都试一试

2.继续学习spring




返回列表 返回列表
评论

    分享到