刨析Maven(对pom.xml配置文件常用标签的解析)
昨天在阿里云看到了一句话,“当你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配置文件常用标签的解析)的更多相关文章
- maven(4)------maven核心pom.xml文件常用元素分析
在maven项目中,pom文件是核心文件 pom.xml: <?xml version="1.0" encoding="UTF-8"?> <p ...
- Maven的pom.xml配置文件详解
Maven简述 Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具.由于 Mav ...
- Maven之pom.xml配置文件详解
此文非原创,摘自:https://www.baidu.com/link?url=GlGgW21nijIiULDZj0RfPH8ofqGMqEnAzXiym7O3hfrZM5nFH2enukemBNTX ...
- maven的pom.xml配置文件讲解
<project xmlns="http://maven.apache.org/POM/4.0.0 " xmlns:xsi="http://www.w3.o ...
- maven的pom.xml文件的标签详解
该博文引至:https://www.cnblogs.com/hafiz/p/5360195.html <project xmlns="http://maven.apache.org/P ...
- maven项目pom.xml中parent标签的使用(转)
原文地址:https://blog.csdn.net/qq_41254677/article/details/81011681 使用maven是为了更好的帮项目管理包依赖,maven的核心就是pom. ...
- spring xml 配置文件中标签的解析
一个springmvc配置文件的例子为: <?xml version="1.0" encoding="UTF-8"?> <beans xmln ...
- maven的pom.xml配置文件中常用的配置标签解析(2018-03-13)
来自:https://www.cnblogs.com/Nick-Hu/p/7288198.html 拿过来记录下 <project xmlns="http://maven.apache ...
- maven项目pom.xml配置文件依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
随机推荐
- 在foxmail和outlook中设置QQ邮箱、gmail邮箱、新浪邮箱、微软邮箱、网易邮箱等的方法
怎么用邮件客户端如outlook和foxmail来设置各种邮箱 很多人平时都是在网页上面收发邮件,这个很简单,不用其他的设置,不过在客户端上设置收发邮件还是很不错的,今天就来讲讲各种邮箱在outloo ...
- grub4dos和winsetupfromusb1.4
其实grub4dos也是一个多系统启动盘制作软件,GRUB4DOS 最大的成功之处就是既学习了windows的方便易用,又引入linux的强大功能.http://baike.baidu.com/lin ...
- 初学Python3 - 写一个登录程序
本篇主要实现一个简单的登录程序,默认给出一个账号密码,贴出写的代码及过程中遇到的问题. ----------------------------------------要求如下: username p ...
- 网站压力测试ab 命令
网站压力测试ab 命令 author: headsen chen 2017-10-25 10:06:35 个人原创,转载请注明作者,出处,否则依法追究法律责任! 1,制作一个a ...
- 《SQL必知必会》读书笔记
个人博客文章地址:https://feiffy.cc/%E3%80%8ASQL%E5%BF%85%E7%9F%A5%E5%BF%85%E4%BC%9A%E3%80%8B 很适合入门的一本SQL书,虽相 ...
- 搭建一套完整的Mysql5.7innodbcluster(GroupReplication+mysqlrouter)
先说三个大步骤: 搭Mysql5.7 Group Replication ,配置成单主模式 安装Mysqlshell,配innodbcluster 安装Mysql-router 第一步:搭Mysql5 ...
- nodejs简单数据迁移demo
近期做数据迁移,采用nodejs框架,数据库为mysql.作为一枚菜鸟,在编码过程中,遇到众多奇葩问题,感谢民少给予的支持. 由于旧数据库中的数据,在之前设计中存在众多不合理的情况,因此在数据迁移中, ...
- 详解Tomcat线程池原理及参数释义
omcat线程池有如下参数: maxThreads, 最大线程数,tomcat能创建来处理请求的最大线程数 maxSpareTHreads, 最大空闲线程数,在最大空闲时间内活跃过,但现在处于空闲,若 ...
- Redis TTL命令
Redis TTL 命令以秒为单位返回 key 的剩余过期时间. redis TTL 命令基本语法如下: redis 127.0.0.1:6379> TTL KEY_NAME 当 key 不存在 ...
- 【Python】 list & dict & str
list & dict & str 这三种类型是python中最常用的几种数据类型.他们都是序列的一种 ■ 序列通用操作 1. 分片 s[a:b] 返回序列s中从s[a]到s[b- ...