昨天在阿里云看到了一句话,“当你Learning和Trying之后,如果能尽量把Teaching也做好,会促进我们思考”。共勉!

  这是关于Maven的第三篇博客,这次我们深入了解pom.xml配置文件,它是Maven项目的基础文件,也是最为重要的文件。

  一、对本项目的声明:

  

  如上图所示,这段截取的代码是一个普通项目的配置的开始,是对本项目的声明,其中——

  <modleVersion/>标签:指定了当前pom的版本。

  <groupId/>标签:定义了该项目属于哪个组,这与所在的组织和公司是有关联的,它是该组织域名的倒置。而对于私人来说,比如我,cn代表中国,zuoyu是我在网络世界的ID,account代表这个项目的名字。

  <artifactId/>标签:这个定义了当前Maven项目组中的唯一ID,可以理解为一个大项目中的一个小项目,比如这个,就是account项目中的邮件服务模块。

  <version/>标签:顾名思义,这是版本说明,而SNAPSHOT说明版本不稳定。

  <packaging/>标签:这个是指定打包方式,如果不说明,默认为jar方式。

  <name/>标签:这个是给该项目起一个更友好的名字,方便交流。

  <url/>标签:该项目的主页URL,用于生成Maven文档使用,一般私人写是用不到的。

  二、坐标与依赖

  

  如上图所示,这段截取代码是一段对依赖的说明,其中——

  <dependencies/>标签:是依赖的root目录,所有的依赖都要放在这个大标签内。

  <dependency/>标签:代表着一个依赖,里面声明要依赖的信息。

  <groupId/>标签:定义当前Maven项目隶属的实际项目。如果你与之前的本项目声明信息中的groupId联想一下,你就会明白。

  <artifactId/>标签:该元素定义实际项目中的一个Maven项目(模块)。

  <version/>标签:定义当前Maven项目所处的版本。

  <scope/>标签:对依赖范围的说明,这个我们看下面...

  依赖范围说明

  首先我们要清楚,Maven环境里有三个ClassPath:分别为编译ClassPath、测试ClassPath、运行ClassPath。

  依赖范围就是为了控制依赖与这三种ClassPath的关系,在Maven中有以下几种ClassPath:

  

  除此之外,还有一个import的导入依赖范围,与<dependencyManagement/>标签有关。

  三、插件的配置

  

  这是一段对插件描述的截取代码段,这个插件是几乎所有Maven项目都要声明的插件,即编译插件声明,没有此声明,项目就无法编译。其中——

  <build/>标签:是对项目构建声明的大标签,里面所有声明都与项目的构建有关。

  <plugins/>标签:这个是所有插件的root标签。

  <plugin/>标签:此标签代表为一个插件。

  <groupId/>、<artifactId/>和<version/>三个标签声明了该插件的坐标。

  <configuration/>标签:此标签内声明了对该插件的配置,此标签内的子标签随着插件的不同而不同,变化多端,不细说,见多了就会了。

  四、资源路径的配置

  

  这段截取的代码段是关于资源路径的配置,是指定资源被打包后所放位置。在这其中——

  <resources/>标签:这个元素描述了项目相关的所有资源路径列表。

  <resource/>标签:其中的一个资源路径配置,例如和项目相关的属性文件,这些资源被包含在最终的打包文件里。

  <directory/>标签:描述存放资源的目录,该路径相对POM路径,用来指定resources插件处理哪个目录下的资源文件。

  <includes/>标签:包含的模式列表,就是该操作都操作哪些文件。

  其中还有一些标签没有用得上,比如——

  <excludes/>标签:与<includes/>标签对立,排除的模式列表。

  <targetPath/>标签:指定打包后该资源所放位置。

  <filtering/>标签:是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。

  <filters/>标签:当filtering开关打开时,使用到的过滤器属性文件列表。

  五、测试资源路径的配置:

  

  这段截取代码是对测试资源路径的描述,与资源配置路径大同小异,描述了单元测试相关的所有资源路径,例如和单元测试相关的属性文件。

  

  六、全局配置

  

  这个配置非常的自由,你可以声明出任何标签——

  其中的<project.build.sourceEncoding/>声明了该项目构建的字符编码为UTF-8格式。当你在配置build的内容时,它会隐式的起到作用。

  其中的<springframework.version/>声明了该项目的spring依赖包为2.5.6版本,是我声明的标签,当然你必须这样使用才行:

  

  O(∩_∩)O,这些都是常用的标签,我给了一下总结,当然Maven的pom.xml还有很多标签,以后用到了再研究吧!

  还有关于Maven的继承与聚合中某些标签的用法,请移步至  我的Maven的多模块博客

  博客中如有不严谨、不恰当的描述,欢迎批评。

  我的邮箱:  zuoyuip@qq.com

  

刨析Maven(对pom.xml配置文件常用标签的解析)的更多相关文章

  1. maven(4)------maven核心pom.xml文件常用元素分析

    在maven项目中,pom文件是核心文件 pom.xml: <?xml version="1.0" encoding="UTF-8"?> <p ...

  2. Maven的pom.xml配置文件详解

    Maven简述 Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具.由于 Mav ...

  3. Maven之pom.xml配置文件详解

    此文非原创,摘自:https://www.baidu.com/link?url=GlGgW21nijIiULDZj0RfPH8ofqGMqEnAzXiym7O3hfrZM5nFH2enukemBNTX ...

  4. maven的pom.xml配置文件讲解

    <project xmlns="http://maven.apache.org/POM/4.0.0 "     xmlns:xsi="http://www.w3.o ...

  5. maven的pom.xml文件的标签详解

    该博文引至:https://www.cnblogs.com/hafiz/p/5360195.html <project xmlns="http://maven.apache.org/P ...

  6. maven项目pom.xml中parent标签的使用(转)

    原文地址:https://blog.csdn.net/qq_41254677/article/details/81011681 使用maven是为了更好的帮项目管理包依赖,maven的核心就是pom. ...

  7. spring xml 配置文件中标签的解析

    一个springmvc配置文件的例子为: <?xml version="1.0" encoding="UTF-8"?> <beans xmln ...

  8. maven的pom.xml配置文件中常用的配置标签解析(2018-03-13)

    来自:https://www.cnblogs.com/Nick-Hu/p/7288198.html 拿过来记录下 <project xmlns="http://maven.apache ...

  9. maven项目pom.xml配置文件依赖

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

随机推荐

  1. css样式加载顺序

    css样式加载顺序: A: id选择器指定的样式 > 类选择器指定的样式 > 元素类型选择器指定的样式 B: 如果要让某个样式的优先级变高,可以使用!important来指定: .clas ...

  2. 【OpenCV-Python:实现人脸、人眼、嘴巴识别】实战(一)

    AI时代的到来,手机上的APP开始应用人脸识别去完成事情,如iphoneX的人脸解锁,百度自动贩卖机的人脸识别系统进行支付,支付宝的人脸识别登录等,提高了使用软件的易用性,但也因为其便利性,在某些市面 ...

  3. Docker学习笔记(一)

    什么是Docker? 1.基于Go语言开发的云开源项目,Docker的主要目标是通过对应用组件的 封装,分发,部署,运行等生命周期的管理,达到应用组件级别的 一次封装,到处运行. 2.可以将Docke ...

  4. 【SSH/SFTP】SSH协议和SFTP

    [SSH和SFTP] ■ 设置一个只允许访问部分目录的SFTP服务器 由于SSH和SFTP之间的紧密联系,一个SFTP服务器必然会导致开放一定的SSH服务,而SSH的风险显然比SFTP要大一些.自然, ...

  5. iOS CocoaPods一些特别的用法 指定版本、版本介绍、忽略警告

    简介 介绍一些CocoaPods一些特别的用法 CocoaPods github地址 CocoaPods 官方地址 1. 指定第三方库版本 1. 固定版本 target 'MyApp' do use_ ...

  6. [poj3254]Corn Fields_状压dp

    Corn Fields poj3254 题目大意:给你一个n*m的地,每一块地可以种或不种,两块种过的地不能挨着,可以一块都不种,问所有的种地方案数. 注释:读入用0和1,1<=n,m<= ...

  7. NODE_ENV 不是内部或外部命令,也不是可运行的程序,或者批处理文件

    今天碰到一个奇葩问题,mac上能执行的npm命令,到windows上执行不聊了,报这个错 NODE_ENV 不是内部或外部命令,也不是可运行的程序,或者批处理文件 这是怎么回事呢?听我慢慢道来. &q ...

  8. Java基础学习笔记二十三 Java核心语法之反射

    类加载器 类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,链接,初始化三步来实现对这个类进行初始化. 加载就是指将class文件读入内存,并为之创建一个Class对象.任 ...

  9. 实验四 Android程序设计 实验报告

    实验四 Android程序设计 实验报告 目录 代码托管地址 Android程序设计-1 Android程序设计-2 Android程序设计-3 Android程序设计-4 Android程序设计-5 ...

  10. 项目Alpha冲刺Day7

    一.会议照片 二.项目进展 1.今日安排 今天都是课,主要就是用空闲时间熟悉一下框架使用以及继续进行框架搭建. 2.问题困难 前台界面框架vue和element-ui的写法要适应. 3.心得体会 vu ...