java 发表于 2017-5-16 10:44:43

POM文件详解

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


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>
页: [1]
查看完整版本: POM文件详解