黑猴子的家:Maven pom 学习

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

你可能感兴趣的:(黑猴子的家:Maven pom 学习)