1、什么是 pom ?
Project Object Model,项目对象模型
将Java工程的相关信息封装为对象作为便于操作和管理的模型。Maven工程的核心配置。可以说学习Maven就是学习pom.xml文件中的配置
通过xml格式保存的pom.xml文件
作用类似ant的build.xml文件,功能更强大
该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等
2、快速浏览 pom
一个完整的pom.xml文件,放置在项目的根目录下
4.0.0
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
3、pom 协作关系
4.0.0
org.codehaus.mojo
my-project
1.0
war
groupId : 组织标识,例如:org.codehaus.mojo,在M2_REPO目录下,将是: org/codehaus/mojo目录
artifactId : 项目名称,例如:my-project,在M2_REPO目录下,将是:org/codehaus/mojo/my-project目录
version : 版本号,例如:1.0,在M2_REPO目录下,将是:org/codehaus/mojo/my-project/1.0目录
packaging : 打包的格式,可以为:pom、jar、maven-plugin、ejb、war、ear、rar、par
4、pom 依赖关系
依赖关系列表(dependency list)是POM的重要部分
junit
junit
4.0
test
...
groupId , artifactId , version
scope : compile(default),provided,runtime,test,system
exclusions
5、如何查到依赖的类库?
一般可以通过这个网站
http://www.mvnrepository.com
比如查询hibernate,可以找到结果列表中的hibernate类库条目
org.hibernate
hibernate
3.2.6.ga
到pom.xml文件中即可
6、是否还需要找到hibernate依赖的pom?
不需要,hibernate也会有pom,maven会通过它的pom自动找到它依赖的类库。
7、继承关系
继承其他pom.xml配置的内容。
maven提供了一个类似java.lang.Object的顶级父pom.xml文件。
可以通过下面命令查看当前pom.xml受到超pom.xml文件的影响
mvn help:effective-pom
创建一个各种项目可复用的pom.xml文件
http://easymorse.googlecode.com/svn/trunk/pom/pom.xml
部署要复用的pom.xml文件
mvn install
在自己的pom文件中继承上述pom
com.easymorse
pom
0.1
8、聚合关系
用于将多个maven项目聚合为一个大的项目
比如目录结构如下
|-- pom.xml
|-- module-a
-- pom.xml
|-- module-b
-- pom.xml
|-- module-c
-- pom.xml
|-- foo-all
-- pom.xml
那么总的pom.xml文件类似
module-a
module-b
module-c
foo-all
参考文档:http://maven.apache.org/plugins/maven-eclipse-plugin/reactor.html
9、其他配置
maven的属性,是值的占位符,类似EL,类似ant的属性,比如${X},可用于pom文件任何赋值的位置。
有以下分类:
env.X
操作系统环境变量,比如${env.PATH}
project.x
pom文件中的属性
1.0
引用方式
${project.version}
settings.x
settings.xml文件中的属性
false
引用方式
${settings.offline}
Java System Properties
java.lang.System.getProperties()中的属性,比如java.home
引用方式:${java.home}
自定义
在pom文件中可 以
c:/apps/cargo-installs< /installDir>
引用方式
${installDir}
10、设置离线
在.m2目录下创建settings.xml文件(如果没有的话)
true
11、安装第三方包
经常有第三方包,因为一些原因,在网上repository上没有,需要自己动手安装
比如sun某些版本的jar文件,比如oracle的驱动
已oracle驱动程序为例,比如驱动路径为c:/driver/ojdbc14.jar,是10.2.0.3.0版本
在该网址能够查到:http://www.mvnrepository.com/artifact/com.oracle/ojdbc14 artifactId和groupId。
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=c:/driver/ojdbc14.jar
这样就可以在pom中依赖引用了
com.oracle
ojdbc14
10.2.0.3.0
12、部署到tomcat
tomcat配置有管理权限的用户:conf\tomcat-users.xml
在pom文件的tomcat插件中添加
org.codehaus.mojo
tomcat-maven-plugin
http://localhost:8080/manager
myserver
/mycontext
在.m2/settings.xml文件中增加
myserver
marshal
password
运行打包部署,在maven项目目录下
mvn tomcat:deploy
然后访问:http://localhost:8080/mycontext/ 即可。
撤销部署
mvn tomcat:undeploy
启动web应用
mvn tomcat:start
停止web应用
mvn tomcat:stop
重新部署
mvn tomcat:redeploy
部署展开的war文件
mvn war:exploded tomcat:exploded