基本内容:
POM包括了所有的项目信息。
maven 相关:
pom定义了最小的maven2元素,允许groupId,artifactId,version。
所有需要的元素groupId:项目或者组织的唯一标志,并且配置时生成的路径也是由此生成,如org.codehaus.mojo生成的相对路径为:/org/codehaus/mojoartifactId: 项目的通用名称
groupId, artifactId, version:描述了依赖的项目唯一标志
version:项目的版本
packaging: 打包的机制,如pom, jar, maven-plugin, ejb, war, ear, rar, par
classifier: 分类
dependency:依赖(一般是个包什么的)
type:相应的依赖产品包形式,如jar,war
scope:用于限制相应的依赖范围,包括以下的几种变量:
compile :默认范围,用于编译
provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath
runtime:在执行时,需要使
test:用于test任务时使用
system:需要外在提供相应得元素。通过systemPath来取得
继承:
定义父项目
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.codehaus.mojo</groupId>
<artifactId>my-parent</artifactId>
<version>2.0</version>
<packaging>pom</packaging>
</project>
资源<resources>
设置<build> :主要用于编译设置,包括两个主要的元素,build和report
插件 <plugins>:在build时,执行的插件,比较有用的部分,如使用jdk 5.0编译等等
dependencyManagement:
用于父项目配置共同的依赖关系,主要配置依赖包相同因素,如版本,scope。
详细:http://www.blogjava.net/zyl/archive/2006/12/30/91055.html
<propeties>用法,设变量,代替常量,用于以后更新的话,不用全都更新各地的常量,直接更该变量就行,比如版本更新
在pom.xml中添加依赖时语法如下
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>1.2.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>1.2.6</version>
</dependency>
以上内容没错,但有这样一个问题,在spring的依赖中,我们需要引用一系列版本的spring,如版本1.2.6。每次都写不利于维护。
二 解决办法
在pom.xml定义properties标签
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>1.2.6</spring.version>
<developer.organization><![CDATA[xy公司]]></developer.organization>
</properties>
以上内容就改成了
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
确实很清晰明了。