maven3实战之maven使用入门(编写POM)
来源:互联网 发布:三代身份证 知乎 编辑:程序博客网 时间:2024/05/16 18:56
maven3实战之maven使用入门(编写POM)
----------
maven项目的核心是pom.xml。POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。如例,新建一个名为pom.xml的文件:
- <?xml version="1.0" encoding="UTF-8"?>
- <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.juvenxu.mvnbook</groupId>
- <artifactId>hello-world</artifactId>
- <version>1.0-SNAPSHOT</version>
- <name>Maven hello world Project</name>
- </project>
代码的第一行是xml头,指定了该xml文档的版本和编码方式。紧接着是project元素,project是所有pom.xml的根元素,它还声明了一些POM相关的命名空间及xsd元素,虽然这些属性不是必须的,但使用这些属性能够让第三方工具(如:IDE中的xml编辑器)帮助我们快速编辑POM。
根元素下的第一个子元素modelVersion指定了当前POM模型的版本,对于maven2及maven3来说,它只能是4.0.0。
这段代码中最重要的是包含groupId,artifactId和version的三行。这三个元素定义了一个项目基本的坐标,在maven的世界,任何的jar,pom或者war都是以基于这些基本的坐标进行区分的。
groupId定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联。譬如在googlecode上建立了一个名为myapp的项目,那么groupId就应该是com.googlecode.myapp,如果你的公司是mycom,有一个项目为myapp,那么groupId应该是com.mycom.myapp。
artifactId定义了当前maven项目在组中唯一的ID,如在前面的groupId为com.googlecode.myapp的例子中,你可能会为不同的子项目(模块)分配artifactId,如:myapp-util,myapp-domain,myapp-web等。
顾名思义,version指定了项目当前的版本--1.0-SNAPSHOT。SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。随着项目的发展,version会不断更新,如升级为1.0,1.1-SNAPSHOT,1.1,2.0等。
最后一个name元素声明了一个对于用户更为友好的项目名称,虽然这不是必须的,但还是推荐为每个pom声明name,以方便信息交流。
- maven3实战之maven使用入门(编写POM)
- maven3实战之maven使用入门(编写主代码)
- maven3实战之maven使用入门(编写主代码)
- maven3实战之maven使用入门(编写测试代码)
- maven3实战之maven使用入门
- maven3实战之maven使用入门
- maven3实战之maven使用入门
- maven3实战之maven使用入门(打包和运行)
- maven3实战之maven使用入门(打包和运行)
- maven3实战之maven使用入门(打包和运行)
- maven3实战之maven使用入门(使用archetype生成项目骨架)
- Maven学习笔记之四:Maven使用入门(编写POM)
- maven3实战之maven安装最佳实践
- maven3实战之maven安装最佳实践
- maven3实战之仓库(maven仓库分类)
- maven3实战之仓库(maven仓库介绍)
- maven3实战之仓库(maven仓库分类)
- maven3实战之仓库(maven仓库分类)
- 智能家居方案定制开发
- C++读写文件
- maven3实战之maven安装最佳实践
- android系统如何自适应屏幕大小
- Android开发中的MVC模式理解
- maven3实战之maven使用入门(编写POM)
- android开发:如何开启线程
- 自定义异常类
- Ubuntu下Nginx编译安装
- oracle 硬解析执行步骤详解
- 系统死机对于大家来说都并不陌生
- 嵌入式产品研发外包
- 25个可遇不可求的jQuery插件
- VC2012 学习记录