一 简介
Maven是基于项目对象模型(pom)的概念运作的,所以Maven的项目都有一个pom.xml用来管理项目的依赖以及项目编译等功能。
二 pom.xml文件解读
<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.0http://maven.apache.org/xsd/maven-4.0.0.xsd">;
<!-- 指定了当前pom版本-->
<modelVersion>4.0.0</modelVersion>
<groupId>反向公司网址+项目名</groupId>
<artifactId>项目名+模块</artifactId>
<!-- 第一个0表示大版本号
第二个0表示分支版本号
第三个0表示小版本号
0.0.1
snapshot:快照
alpha:内部公测
beta:公测
Release:稳定
GA:正式
-->
<version>0.0.1-SNAPSHOT</version>
<!--默认是jar
war zip pom
-->
<packaging>jar</packaging>
<!--项目描述名-->
<name>hi</name>
<!--项目地址-->
<url>http://maven.apache.org</url>;
<!--项目描述-->
<description></description>
<!--开发人员列表-->
<develops></develops>
<!--许可证信息-->
<licenses></licenses>
<!--组织信息-->
<organization></organization>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--
变量定义:<properties></properties>中可定义变量,该变量在dependency被引用。
-->
<spring-framework.version>4.1.5.RELEASE</spring-framework.version>
</properties>
<!--依赖列表-->
<dependencies>
<!--
groupId、artifactId、version为坐标
groupId:组织内的唯一标识
artifactId:项目的唯一标识
version:项目的版本
-->
<!--依赖项-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring-framework.version}</version>
<!--依赖范围-->
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<!--依赖范围-->
<scope>test</scope>
<!--设置依赖是否可选-->
<optional></optional>
<!--排除依赖传递列表-->
<exclusions>
<exclusion>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<!--依赖的管理-->
<dependencyManagement>
<dependencies>
<dependency></dependency>
</dependencies>
</dependencyManagement>
<!--用于定义构建信息-->
<build>
<!--插件的列表-->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!--
Maven提供了编译插件、可在编译插件中指定Java的编译级别
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<parent></parent>
<modules>
<module></module>
</modules>
</project>
三 运作方式
Maven会自动根据dependency中的依赖配置,直接通过互联网在Maven中心库下载相关依赖包到.m2目录下,.m2目录是本地的Maven库。
如果不清楚所依赖jar包的dependency怎么写,推荐到http://mvnrepository.com网站检索。
若Maven中心库中没有需要的jar包(如Oracle),需要通过下面的Maven命令将该jar包安装到本地Maven库后才能应用,如安装Oracle驱动到本地库:
mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.2.0 -Dpackaging=jar -Dfile=E:\Java\韩顺平.2011版.hibernate3.3视频教程\资料\database_jar\oracle\ojdbc14.jar
四 说明
Maven运行时pom.xml是根据设置组合来运行的,每个Maven项目的pom.xml都有一个上级pom.xml,当前项目的pom.xml的设置都会被合并到上级pom.xml中。上级pom.xml定义了项目的大量的默认设置。如果用户希望看到Maven项目实际起作用的pom.xml,可以运行下面命令:
mvn help:effective-pom