码迷,mamicode.com
首页 > 其他好文 > 详细

mave 中pom文件基本配置

时间:2015-02-14 22:37:56      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:maven

什么是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大而复杂,我们不用全部去了解,只要使用一些常用的配置就可以了。以上的为基本的配置和语法,希望对大家有所帮助。

 

mave 中pom文件基本配置

标签:maven

原文地址:http://blog.csdn.net/han_yankun2009/article/details/43820801

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!