您的位置:首页 > 其它

POM文件详解

2016-05-26 19:00 225 查看
POM,Project Object Model,在MAVEN1中叫做project.xml,到maven2后改为pom.xml。该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。一个maven项目可以没有任何源代码,但必须包含pom文件。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.mycompany.app</groupId>

  <artifactId>my-app</artifactId>

  <packaging>jar</packaging>

  <version>1.0-SNAPSHOT</version>

  <name>my-app</name>

  <url>http://maven.apache.org</url>

  <dependencies>

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>3.8.1</version>

      <scope>test</scope>

    </dependency>

  </dependencies>

</project>

    <!-- scope 说明

                - compile :默认范围,用于编译

                - provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpath

                - runtime: 在执行时,需要使用

                - test:    用于test任务时使用

                - system: 需要外在提供相应得元素。通过systemPath来取得

                - systemPath: 仅用于范围为system。提供相应的路径

                - optional:   标注可选,当项目自身也是依赖时。用于连续依赖时使用

            -->

POM文件基本属性:


    groupId : 组织标识,例如:com.mycompany.app,在M2_REPO目录下,将是: com/mycompany/app目录。

    artifactId : 项目名称,例如:my-app

    version : 版本号

    packaging : 打包的格式,可以为:pom , jar , maven-plugin , ejb , war , ear , rar , par

 <dependencies>:依赖关系

POM文件的关系:

依赖关系:
依赖关系列表(dependency list)是POM的重要部分。

      <dependencies>

        <dependency>

          <groupId>junit</groupId>

          <artifactId>junit</artifactId>

          <version>4.0</version>

          <scope>test</scope>

        </dependency>

        …

      </dependencies>

    groupId , artifactId , version :

    scope : compile(default),provided,runtime,test,system

    exclusions

    
继承关系:允许项目之间存在继承关系

定义父项目

xml 代码

<project>

<modelVersion>4.0.0<modelVersion>

<groupId>org.codehaus.mojo<groupId>

<artifactId>my-parent<artifactId>

<version>2.0version>

<packaging>pom<packaging>

<project>

子项目:主要通过parent设置

<project>

<modelVersion>4.0.0<modelVersion>

<parent>

    <groupId>org.codehaus.mojo<groupId>

    <artifactId>my-parent<artifactId>

    <version>2.0<version>

    <relativePath>../my-parent<relativePath>

<parent>

<artifactId>my-project<artifactId>

<project>

relativePath可以不需要,但是用于指明parent的目录,用于快速查询。

聚合:一个项目有多个模块,也叫做多重模块,或者合成项目。主要通过modules属性实现

<project>

<modelVersion>4.0.0<modelVersion>

<groupId>org.codehaus.mojo<groupId>

<artifactId>my-parent<artifactId>

<version>2.0<version>

<modules>

    <module>my-project1<module>

    <module>my-project2<module>

<modules>

<project>

顶0踩0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  maven 管理