maven3实战之maven使用入门(编写POM)

----------

maven项目的核心是pom.xml。POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。如例,新建一个名为pom.xml的文件:

Xml代码  
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>com.juvenxu.mvnbook</groupId>
  7. <artifactId>hello-world</artifactId>
  8. <version>1.0-SNAPSHOT</version>
  9. <name>Maven hello world Project</name>
  10. </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,以方便信息交流。

最新文章

  1. 30天C#基础巩固------读写流(StreamWrite/StreamReader)
  2. MergeSort(归并排序)算法Java实现
  3. github文件上传及github pages博客搭建教程
  4. jQuery-webcam(.NET)实现WEB摄像头监控
  5. boot.img的分析
  6. 遇见了这个问题:App.config提示错误“配置系统未能初始化”
  7. JavaScript的一点简介(注:本文诸多观点源于JavaScript高级程序设计,如有侵权,立即删除)
  8. JDK5什么是新的堵塞队列线程(四)
  9. jsonpCallback: xx is not a function
  10. vue基础4-数据绑定
  11. AMBA APB总线
  12. Jira 添加自定义字段
  13. 关于java线程的daemon的认识
  14. transition多个属性同时渐变(width,height,background)
  15. Linux学习6-Linux常用命令(1)
  16. SVG坐标系统和transformation彻底理解
  17. Tkinter学习
  18. windows拒绝远程登陆
  19. Ubuntu——修正LibreOffice中文乱码以及eclipse提示框颜色
  20. 第二届PHP全球开发者大会(含大会的PPT)

热门文章

  1. php header()函数设置页面Cache缓存
  2. sql 语法
  3. rtc关机闹钟3 IAlarmManager
  4. JQuery-Table斑马线
  5. python-学习笔记之-Day5 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化
  6. CSUFT 1004 This is Halloween: Saving Money
  7. Entity Framework 第二篇 事务
  8. XMLHttpRequest 2.0与FileReader接口的方法
  9. reactjs入门到实战(九)----ajax的应用
  10. HTML 5 Web Sockets应用初探