大家好,作为新手,第一次写博客,有不足的地方请大家批评指正。
首先,贴出我参考的文章,基于这几个网址下的文章,我自己整理出了我对Maven下的pom.xml文件的理解。
1、http://haohaoxuexi.iteye.com/blog/2055744。(关于Maven的理解出自这里)
2、http://haohaoxuexi.iteye.com/blog/2055745。(关于pom.xml认识出自这里)
3、http://blog.csdn.net/ithomer/article/details/9332071。(关于pom.xml认识出自这里)
4、http://blog.csdn.net/zhuxinhua/article/details/5788546。(关于pom.xml认识出自这里)
废话不多说,下面开始讲解我对maven的pom.xml的认识:
1、什么是Maven?
Maven就是一个仓库(包括本地仓库和远程仓库),用来存储工件的。Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。Maven对于我们一个很深的印象就是,负责管理项目所需要的jar包,减少了我们在进行工程版本控制时的资源消耗(避免了版本控制时加入jar包带来的磁盘空间消耗和提高了工程检出时的速度)。
2、pom.xml
pom.xml是Maven的配置文件。在这个文件中我们可以配置Maven项目的groupId、artifactId和version等Maven项目必须的元素,可以配置Maven项目需要使用的远程仓库,可以定义Maven项目打包的形式,可以定义Maven项目的资源依赖关系等等。
对于一个最简单的pom.xml的定义必须包含modelVersion、groupId、artifactId和version这四个元素,当然这其中的元素也是可以从它的父项目中继承的。在Maven中,使用groupId、artifactId和version组成groupId:artifactId:version的形式来唯一确定一个项目。其中:
groupId:指的是项目或者组织的唯一标志,并且配置时生成路径也是由此生成,如org.myproject.mojo生成的相对路径为:/org/myproject/mojo
artifactId:指的是项目的通用名称
version:指的是项目的版本
packaging:打包机制,如pom,jar,maven-plugin,ejb,war,ear,rar,par
name:用户描述项目的名称,无关紧要的东西,可选
url:应该是只是写明开发团队的网站,无关紧要,可选
classifer:分类,无关紧要,可选
对于一个pom.xml来说有几个元素是必须定义的,一个是project根元素,然后就是它里面的modelVersion、groupId、artifactId和version。和java里面的继承类似,子pom.xml会完全继承父pom.xml中所有的元素,而且对于相同的元素,一般子pom.xml中的会覆盖父pom.xml中的元素,但是有几个特殊的元素它们会进行合并而不是覆盖。这些特殊的元素是:
dependencies:该元素描述了项目相关的所有依赖
developers:项目开发者列表
contributors:项目的其他贡献者列表
plugin列表(包括plugin下面的reports、resources):使用的插件列表
build:构建项目所需要的信息
以上就是我通过几篇文章自己总结的东西。