1.Super POM
- Super POM是 Maven 默认的 POM, 包含了一些可以被继承的默认设置
- 所有的 POM 都继承自一个 super POM(无论是否显式定义了这个父super POM,类似于Java中的Object类)
使用以下命令来查看 Super POM 默认配置
mvn help:effective-pom
2.常用标签
-
<modelVersion>
模型版本<modelVersion>4.0.0</modelVersion>
-
<groupId>
公司或者组织的唯一标志,并且配置时生成的路径也是由此生成<groupId>com.companyname.project-group</groupId>
-
<artifactId>
项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的<artifactId>project</artifactId>
-
<version>
项目版本号<version>1.0</version><!--项目当前版本,格式为:主版本.次版本.增量版本-限定版本号-->
-
<parent>
父项目的坐标<parent> <!--被继承的父项目的构件标识符 --> <artifactId /> <!--被继承的父项目的全球唯一标识符 --> <groupId /> <!--被继承的父项目的版本 --> <version /> <!-- 父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项目的pom,其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom。--> <relativePath /> </parent>
-
<packaging>
项目产生的构件类型,例如jar、war、ear、pom。插件可以创建他们自己的构件类型,所以前面列的不是全部构件类型<packaging>pom</packaging> <!-- POM是最简单的打包类型。不像一个JAR,SAR,或者EAR,它生成的构件只是它本身。没有代码需要测试或者编译,也没有资源需要处理。打包类型为POM的项目的默认目标生命周期阶段--> <!-- pom 类型:一般作为父工程存在,父工程主要是进行统一的版本申明,并不定义具体的依赖关系,常见于多模块或者说聚合工程中使用。-->
-
<build>
构建项目需要的信息<directory></directory> <!--指定属性文件的目录,build的过程需要找到它,并且将其放到targetPath下,默认的directory是${basedir}/src/main/resources--> <sourceDirectory /> <!--该元素设置了项目源码目录,当构建项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径--> <!--使用来自该项目的一系列构建扩展 --> <extensions> <!--描述使用到的构建扩展。 --> <extension> <!--构建扩展的groupId --> <groupId /> <!--构建扩展的artifactId --> <artifactId /> <!--构建扩展的版本 --> <version /> </extension> </extensions>
-
<resources>
构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件。
自定义的目录,如果没有配置resources可能导致maven在打包的时候该目录下的一些文件不会打包进去。
<resources> <!--这个元素描述了项目相关或测试相关的所有资源路径 --> <resource> <!-- 描述了资源的目标路径。该路径相对target/classes目录(例如${project.build.outputDirectory})。举个例子,如果你想资源在特定的包里(org.apache.maven.messages),你就必须该元素设置为org/apache/maven /messages。然而,如果你只是想把资源放到源码目录结构里,就不需要该配置。 --> <targetPath /> <!--是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。 --> <filtering /> <!--描述存放资源的目录,该路径相对POM路径 --> <directory /> <!--包含的模式列表,例如**/*.xml. --> <includes /> <!--排除的模式列表,例如**/*.xml --> <excludes /> </resource> </resources>