pom文件是通过在文件中定义jar包版本和依赖,从maven库或中央仓库便捷的引用和使用jar文件。
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.yanjx</groupId>
<artifactId>demotestspring</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>demotestspring Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>demotestspring</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${compiler.plugin.version}</version>
<configuration>
<encoding>utf-8</encoding>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
dependencies设置
一个jar包,就是dependencies节点中的一个dependency的节点。
其中,节点的<groupId> 、<artifactId>、<version>这三个元素定义了一个项目基本的坐标,在maven项目中,任何的jar、pom或者war都是基于这些基本的坐标进行区分的。
1、<groupId>是项目或组织的唯一标志,并且配置时生成的路径也是由此生成,比如:com.taobao.supermarket,公司是taobao,有一个项目为supermarket。
2、<artifactId>定义了在当前maven项目组中的唯一ID,这个supermarket项目的artifactId为supermarket。
3、<version>代表引用包的版本。
4、<scope>对Junit的依赖规定了一个范围。
scope=test:表明Junit只在测试编译和测试运行阶段可用;
scope=compile:表示默认范围,如果依赖声明中没有提供一个范围,那么该依赖的范围就是编译范围;
scope=provided:如果你的开发过程只有在编译和测试时需要一个类库,而该类库在运行的时候由容器提供,那么你就需要使用已提供范围的依赖,如servlet-api。
以junit为例,具体要引用哪个版本的JUnit,在version节点配置,scope节点配置一般情况是test,因为junit主要用于测试阶段,但是我是专门用于测试的项目,测试文件都放在了java目录下,所以我的scope节点配置成了compile。
有了这段dependency,maven就能够自动下载Junit-4.12.jar。
build设置
主要用于编译设置,一般包含两种标签:resource和plugins,前者用于排除或包含某些资源文件,后者用来设置插件。