mave 中pom文件基本配置

来源:互联网 发布:java疯狂讲义第几版好 编辑:程序博客网 时间:2024/05/21 06:52

什么是Pom

Pom是项目对象模型(Project Object Model),它是Maven项目中的文件,表示的不仅仅是一堆包含代码的文件。还包含了与开发有关的组织,项目url,项目依赖,以及其他。而且一个project可以仅包含pom.xml

Pom 基本设置

<projectxmlns="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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>    <!-- 基本设置 -->    <groupId>...</groupId>    <artifactId>...</artifactId>    <version>...</version>    <packaging>...</packaging>   <dependencies>...</dependencies>    <parent>...</parent>   <dependencyManagement>...</dependencyManagement>    <modules>...</modules>    <properties>...</properties></project>

其中的modelVersion是4.0.0,这是当前仅有的可以被Maven2&3同时支持的POM版本

理解:

1.groupId: 项目标识,例如:org.codehaus.mojo,在M2_REPO目录下,将是:org/codehaus/mojo目录。

2.artifactId: 模块名称,例如:my-project,在M2_REPO目录下,将是:org/codehaus/mojo/my-project目录。

3.version: 版本号,例如:1.0,在M2_REPO目录下,将是:org/codehaus/mojo/my-project/1.0目录。

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


Pom 之间关系

uml中对象关系是一致的,有依赖,继承,关联。主要用于pom文件的复用


依赖关系:

依赖关系列表(dependency list)是重要部分

<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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.tgb</groupId><artifactId>itoo-exam-parent</artifactId><version>0.0.1-SNAPSHOT</version><relativePath>../itoo-exam-parent/pom.xml</relativePath></parent><artifactId>itoo-exam-questionbankmanage-core</artifactId><packaging>ejb</packaging><!--依赖关系--><dependencies><dependency><groupId>com.tgb</groupId><artifactId>itoo-base</artifactId></dependency><dependency><groupId>com.tgb</groupId><artifactId>itoo-tool</artifactId></dependency><dependency><groupId>com.tgb</groupId><artifactId>itoo-exam-api</artifactId></dependency><dependency><groupId>com.tgb</groupId><artifactId>itoo-exam-base</artifactId></dependency><dependency><groupId>com.tgb</groupId><artifactId>itoo-exam-tool</artifactId></dependency><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId></dependency></dependencies></project>

理解:

1.groupId ,artifactId , version :

2.scope:(依赖范围)compile(default),provided,runtime,test,system

3.exclusions


继承关系:

继承其他pom.xml配置机制如:

 pom文件

<project><modelVersion>4.0.0</modelVersion><groupId>com.juvenxu.mvnbook.account</groupId><artifactId> account-parent </artifactId><version>1.0.0-SNAPSHOT</version><packaging>pom</packaging><name>Account Parent</name></project>

子模块声明继承如下

<project><modelVersion>4.0.0</modelVersion>< parent ><groupId>com.juvenxu.mvnbook.account</groupId><artifactId> account-parent </artifactId><version>1.0.0-SNAPSHOT</version>< relativePath >../account-parent/pom.xml</ relativePath></ parent ><artifactId> account-email </artifactId><name>Account Email</name></project>

 这里我们看到子模块没有声明groupid和version,这两个属性继承至父模块。但如果子模块有不同与父模块的 groupId、version ,也可指定;同时不应该继承artifactId,如果groupId ,version,artifactId 完全继承的话会造成坐标冲突;


聚合关系:

用于将多个maven项目聚合为一个大项目,这样构建一个项目就可以将整个项目构建完成

<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>org.codehaus.mojo</groupId>  <artifactId>my-parent</artifactId>  <version>2.0</version>  <modules>    <module>my-project<module>//聚合项目  <module>account-email</module>  </modules></project>


 maven的属性:

    maven属性是值的占位符,类似EL,用于pom文件的任何位置。

1.env.X:操作系统环境变量,比如${env.PATH}

2.project.xpom文件中的属性,比如:<project><version>1.0</version></project>,引用方式:${project.version}

3 .自定义:在pom文件中可以::<properties><installDir>c:/apps/cargo-installs</installDir></properties>,引用方式:${installDir}


小结:

pom.xml 文件是maven对一个项目的核心配置,这个文件将包含你希望如何构建项目的大多数配置信息。POM大而复杂,我们不用全部去了解,只要使用一些常用的配置就可以了。以上的为基本的配置和语法,希望对大家有所帮助。

 

2 0
原创粉丝点击