1、最简单的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/xsd/maven-4.0.0.xsd">
<!-- POM版本,4.0.0是唯一支持MAVEN 2和3的POM版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 组织id,唯一的 -->
<groupId>com.wang.pom</groupId>
<!-- 项目id -->
<artifactId>my-project</artifactId>
<!-- 项目版本 -->
<version>1.0.0</version>
</project>
2、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/xsd/maven-4.0.0.xsd">
<!-- POM版本 -->
<!-- 4.0.0是当前唯一受支持的 POM 版本,必需 -->
<modelVersion>4.0.0</modelVersion>
<!-- 组织id,唯一的 -->
<groupId>com.wang.pom</groupId>
<!-- 项目id -->
<artifactId>my-project</artifactId>
<!-- 项目版本 -->
<version>1.0.0</version>
<!-- 项目打包类型 -->
<!-- 默认为jar,其他还有pom、war等 -->
<!-- 如果是父项目,packaging 就是 pom 类型 -->
<packaging>jar</packaging>
<!-- 项目名称,非必需 -->
<name>my-project</name>
<!-- 项目描述,非必需 -->
<description>这个是项目的描述!</description>
<!-- 项目url,非必需 -->
<url>http://pom.wang.com</url>
<!-- 值占位符 -->
<!-- 可以在POM中的任何位置使用 ${X} 访问其值;或者插件可以将它们用作默认值。 -->
<!-- 属性值子模块可以直接继承 -->
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- 依赖列表 -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.0</version>
<!-- 作用范围:有编译、运行、测试编译、测试运行、打包阶段。 -->
<!-- scope的值有:compile、provided、runtime、test、system -->
<!-- compile:scope默认值。参与到编译、运行、测试编译、测试运行阶段,会被打包,该依赖关系会传播到依赖项目。 -->
<!-- provided:参与到编译、测试编译阶段,不会被打包。该依赖关系不具有传递性。 -->
<!-- runtime:参与到运行、测试运行阶段,会被打包。 -->
<!-- test:参与到测试编译、测试运行阶段。不会被打包,它不具有传递性。 -->
<!-- system: 类似provided,不过依赖不会从maven远程中央仓库下载,而是从本地maven仓库中获取。-->
<scope>test</scope>
<!-- systemPath 仅仅当依赖范围是 system 时使用 -->
<!-- <systemPath>绝对路径</systemPath> -->
<!-- optional 默认为 false。true表示当其他项目依赖此项目时不会引入该依赖。-->
<optional>true</optional>
<!-- 显示排除依赖项 -->
<!--
<exclusions>
<exclusion>
<groupId></groupId>
<artifactId></artifactId>
</exclusion>
</exclusions>
-->
</dependency>
</dependencies>
<!-- 用于管理所有子项的依赖;使用方法参考 https://www.jianshu.com/p/e867ac845e11 -->
<!--
dependencies 与 dependencyManagement 区别:
dependencies:即使在子项目中没有写这些依赖,子项目仍然会从父项目中继承这些依赖项。
dependencyManagement:只是声明依赖,并不会实际引入,因此子项目需要显示的声明需要用的依赖。
如果不在子项目中声明依赖,是不会从父项目中继承下来的;
只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该依赖项,并且version和scope都读取自父pom;
另外如果子项目中指定了版本号,那么会使用子项目中指定的依赖项。
-->
<dependencyManagement>
<dependencies>...</dependencies>
</dependencyManagement>
<!-- "Project Build" -->
<build>
<!-- 项目构建时的名称 -->
<finalName>Build Name</finalName>
<!-- 资源元素列表 -->
<resources>
<resource>
<!-- 定义资源的位置 -->
<directory>src/main/resources</directory>
<!-- 指定包含的资源文件,用 * 号做通配符。 -->
<includes>
<include>**/*.properties</include>
<!-- <include>...</include> -->
</includes>
<!-- 要排除哪些文件。在包含和排除之间冲突时,排除胜利。 -->
<excludes>
<exclude>**/*.xml</exclude>
<!-- <exclude>...</exclude> -->
</excludes>
</resource>
<!-- <resource>...</resource> -->
</resources>
<!-- 测试资源元素列表 -->
<testResources>
<testResource>
<!-- 配置与资源元素类似,在测试阶段使用。测试资源不会被部署。 -->
</testResource>
<!-- <testResource>...</testResource> -->
</testResources>
<!-- 插件 -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<!-- true或者false,默认是false。是否加载此插件的扩展。-->
<extensions>false</extensions>
<!-- true或false,默认值为true。这个plugin的配置是否能被子POM继承。 -->
<inherited>true</inherited>
<!-- 配置插件参数 -->
<configuration></configuration>
<!-- 改变插件的依赖 -->
<dependencies></dependencies>
</plugin>
<!-- <plugin>...</plugin> -->
</plugins>
</build>
<!-- END "Project Build" -->
</project>