二:Maven中pom.xml元素详解
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6628201.html
一个pom.xml中包含了许多标签,各个标签是对项目生命周期、依赖管理的配置。常用的主要有:
1:<peoject>:pom.xml的根标签,一个maven项目用一对<peoject></project>标签包裹。
2:<modelVersion>:maven的版本
3:当前项目的坐标以及打包方式:
<groupId>:企业网址反写+项目名
<artifactId>:项目名-模块名
<version>:版本号+类型
版本号由三个整数表示,每个整数用“.”分隔,表示:大版本号.分支版本号.小版本号
类型:版本类型。主要有:snapshot快照版本(简化版本)、alpha内测版、beta公测版、release稳定版、GA正式发布版
<packaging>:打包类型,默认是jar,可以配置成war、zip、pom类型。
4:<name>:当前项目名
5:<url>:项目地址
6:<description>:项目描述信息
7:<developers>:开发者信息
8:<licenses>:项目许可证信息,用来发布时授予别人使用此项目的权利
9:<organization>:组织信息,企业信息
以上都是对这个maven项目的相关信息配置。
10:<properties>:属性值标签,也叫变量标签。与Ant中的property一样,可以通过这个标签包含一些属性并指定属性值。那么在pom.xml的其他地方,可以通过EL表达式访问变量的方法——${属性名} 来获取具体的属性值。一般这个用来作为整个pom.xml中需要重复使用的内容或者全局变量使用。
11:依赖标签
<dependencies>
<!--一个依赖包-->
<dependency>
<!--通过坐标指定依赖包-->
<groupId> </groupId>
<artifactId> </artifactId>
<version> </version>
<!--可选项:依赖范围。有六个可选值:常用compile/provided/test/runtime等-->
<scope>一个范围</scope>
<!--可选项:排除依赖传递:即:当前项目依赖当前配置的依赖包A时,如果这个依赖包又依赖其他包B,这里可以选择排除依赖的传递性,不下载导入B-->
<exclusions>
<exclusion>
<!--被排除的依赖包坐标-->
<groupId> </groupId>
<artifactId> </artifactId>
<version> </version>
</exclusion>
</exclusions>
</dependency>
</dependencies>
12:依赖管理标签:主要用于制定父pom.xml,其他项目可以继承这个pom.xml,从而避免重复定义某些depency。
<depencyManagement>
<depencies>
<depency>
依赖包的坐标...
</depency>
</depencies>
</depencyManagement>
13:<build>:项目支持标签,一般用来引入插件
<build>
<plugins>
<plugin>
<!--插件坐标-->
<groupId> </groupId>
<artifactId> </artifactId>
<version> </version> 其他设置... </plugin>
</plugins>
</build>
14:<parent>:继承标签,用于继承父项目。
15:<moudules>:聚合标签,用于聚合多个maven项目,这样用某指令执行这个pom就会把聚合的各项目全部执行,同时处理多个项目。
示例:一个简单的构建JavaWeb项目的pom.xml如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>WebApp</artifactId>
<packaging>war</packaging>
<version>1.0</version> <name>WebApp Maven Webapp</name>
<url>http://maven.apache.org</url> <dependencies>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.1</version>
</dependency> <!--commons-io为commons-fileupload的可选依赖包-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
</dependencies> <build>
<finalName>WebApp</finalName>
</build>
</project>
二:Maven中pom.xml元素详解的更多相关文章
- 史上最全的maven的pom.xml文件详解(转载)
此文出处:史上最全的maven的pom.xml文件详解——阿豪聊干货 <project xmlns="http://maven.apache.org/POM/4.0.0" x ...
- [转]Maven的pom.xml文件详解
Maven的pom.xml文件详解------Build Settings 2013年10月30日 13:04:01 阅读数:44678 根据POM 4.0.0 XSD,build元素概念性的划分为两 ...
- Maven项目pom.xml配置详解
maven项目pom.xml文件配置详解,需要时可以用作参考: <project xmlns="http://maven.apache.org/POM/4.0.0" xmln ...
- 史上最全的maven的pom.xml文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- maven的pom.xml文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- Maven的pom.xml文件详解【转载】
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- Maven中setting.xml 配置详解
文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${use ...
- Maven的pom.xml 配置详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- Maven项目pom.xml文件详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
随机推荐
- 虚拟机+桥接模式+Host-only模式 搭建完美的Windows下Linux开发环境
相信有很多鞋童和我一个样是一枚Linux码农(我现在还是嵌入式方向). 做Linux开发势必需要一个Linux环境, 大多数开发者会首先选择一个Linux发行版, 其中Ubuntu LTS版本应该是选 ...
- Angular和Spring Boot一起做个项目
引言 最近由于公司人员调整,我不得不去转去做前端,被迫用三周的时间学习Angular,同时需要做一个简单的Web聊天室.对于前端不一点感冒的我而言,其实还算一个不小的挑战.在三周的过程中,我遇到很多的 ...
- haproxy + keepalived 实现网站高可靠
haproxy 1的配置文件,包括 keepalived 和 haproxy 的配置,分别如下: [haproxy 1的keepalived 配置文件] /etc/keepalived/keepal ...
- Pyhton编程(二)之变量、用户输入及条件语句
一:变量 变量定义的规则 1)只能由数字.字母.下划线组成(不能以数字开头) 2)不能使用关键字作为变量名 ['and', 'as', 'assert', 'break', 'class', 'con ...
- 如何开发webpack loader
关于webpack 作为近段时间风头正盛的打包工具,webpack基本占领了前端圈.相信你都不好意思说不知道webpack. 有兴趣的同学可以参考下我很早之前的webpack简介 . 确实webpac ...
- Android Annotations(2)
AndroidAnnotations是一个开源框架,旨在加快Android开发的效率.通过使用它开放出来的注解api,你几乎可以使用在任何地方, 大大的减少了无关痛痒的代码量,让开发者能够抽身其外,有 ...
- Ubuntu Mac OS主题分享
Ubuntu Mac OS主题分享 一直想搞一个Mac OS主题试试,结果很悲催,在网上搜索的Macbuntu主题在安装主题(macbuntu-os-themes-Its-v7)和 图标(macbun ...
- JS对象深度克隆
首先看一个例子: var student = { name:"yxz", age:25 } var newStudent = student; newStudent.sex = & ...
- 容器与Docker简介(二)什么是DOCKER——微软微服务电子书翻译系列
Docker是一个开源项目,用于将应用程序部署自动化,作为可在云端或本地运行的可移植,自包含的容器. Docker同时也是一家促进和发展这项技术的公司,与云,Linux以及Windows的供应商(包括 ...
- Python对于CSV文件的读取与写入
今天天气"刚刚好"(薛之谦么么哒),无聊的我翻到了一篇关于csv文件读取与写入的帖子,作为测试小白的我一直对python情有独钟,顿时心血来潮,决定小搞他一下,分享给那些需要的小白 ...