pom(4.0)命名空间(xmlns):http://maven.apache.org/POM/4.0.0xsd定义:http://maven.apache.org/xsd/maven-4.0.0.xsd
本文部分内容根据个人经验理解的,若有任何问题,还请指出
<?xml version="1.0" encoding="UTF-8"?>
<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" >
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.12.RELEASE</version>
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>WebProject</artifactId>
<packaging>jar</packaging>
<name>demo</name>
<version>1.0-SNAPSHOT</version>
<description>项目描述</description>
<url>project home page</url>
<prerequisites>
<maven>2.0</maven>
</prerequisites>
<issueManagement>
<system>issue系统名称</system>
<url>issue系统路径</url>
</issueManagement>
<ciManagement>
<system>持续集成系统名称</system>
<url>持续集成系统url</url>
<!--配置用于在构建失败时通知开发人员/用户,包括用户信息和通知模式。 -->
<notifiers>
<notifier>
<sendOnError>true</sendOnError>
<sendOnFailure>true</sendOnFailure>
<sendOnSuccess>true</sendOnSuccess>
<sendOnWarning>true</sendOnWarning>
<address>该配置已废除</address>
<configuration>
<custom>一些列自定义属性</custom>
</configuration>
</notifier>
</notifiers>
</ciManagement>
<inceptionYear>记录项目的开始年份,用于生成版权信息</inceptionYear>
<mailingLists>
<mailingList>
<name>名称</name>
<subscribe>可用于订阅邮件列表的电子邮件地址或链接。如果是一个邮件地址,那么会在生成文档的时候自动生成mailTo信息</subscribe>
<unsubscribe>取消订阅的邮件列表的电子邮件地址或链接</unsubscribe>
<post>可用于向邮件列表发送邮件的电子邮件地址或链接。</post>
<archive>指向URL的链接,您可以在该URL中浏览邮件列表存档。</archive>
<otherArchives>
<otherArchive>到可浏览列表存档的备用url的链接。</otherArchive>
</otherArchives>
</mailingList>
</mailingLists>
<!--关于这个项目的一个提交者的信息。-->
<developers>
<developer>
<id>SCM中开发人员的唯一ID。</id>
<name>贡献者的全名。</name>
<email>贡献者的电子邮件地址。</email>
<url>投稿者主页的URL。</url>
<organization>贡献者所属的组织。</organization>
<organizationUrl>组织的URL地址。</organizationUrl>
<roles>
<role>角色</role>
</roles>
<!--贡献者所在时区 -11 到 12 -->
<timezone> 8</timezone>
<!--设置某些属性,没有特定格式-->
<properties>
<p1>属性1</p1>
</properties>
</developer>
</developers>
<!--描述还不是提交者的项目贡献者。-->
<contributors>
<!--属性和developer差不多,没有id-->
<contributor>
</contributor>
</contributors>
<licenses>
<license>
<name>许可证的完整合法名称。</name>
<url>license文本的官方url。</url>
<distribution>
<!--这个项目可能被分发的主要方法。repo:可以从Maven存储库下载;manual:用户必须手动下载和安装依赖。-->
</distribution>
<comments>与本许可证有关的附录信息。</comments>
</license>
</licenses>
<scm>
<connection>源控制管理系统URL,该url的源库只读。</connection>
<developerConnection>和connection一样,不过该url针对开发者,源库不是只读。</developerConnection>
<tag>目前项目使用的tag,默认情况下,开发中是HEAD</tag>
<url>scm库浏览器访问的url</url>
</scm>
<!--项目的开发组织信息。-->
<organization>
<name>组织名称</name>
<url>组织主页 </url>
</organization>
<!--构建项目所需的信息。-->
<build>
<!--项目资源路径,相对路径-->
<sourceDirectory>src/main/java</sourceDirectory>
<!--项目的脚本路径,相对路径-->
<scriptSourceDirectory>src/main/sql</scriptSourceDirectory>
<!--测试资源路径-->
<testSourceDirectory>src/test</testSourceDirectory>
<!--项目输出路径-->
<outputDirectory>target/classes</outputDirectory>
<!--测试输出路径-->
<testOutputDirectory>target/test-classes</testOutputDirectory>
<!--build的拓展信息-->
<extensions>
<extension>
<groupId>com.aliyun</groupId>
<artifactId>quotas20200510</artifactId>
<version>1.0.1</version>
</extension>
</extensions>
<defaultGoal>项目的默认目标</defaultGoal>
<!--所有资源路径-->
<resources>
<resource>
<!--资源的存储路径-->
<directory>src/main/resources</directory>
<!--包含的文件-->
<includes>
<include>**/*.xml</include>
</includes>
<!--排除的文件-->
<excludes>
<exclude>**/*.doc</exclude>
</excludes>
<!--资源需要打包到哪儿-->
<targetPath>org/apache/maven/messages</targetPath>
<!--是否使用过滤,默认false,true则使用filters的properties进行过滤-->
<filtering>false</filtering>
</resource>
</resources>
<testResources>
<!--测试用的资源路径,与resources一致配置-->
</testResources>
<!--放置构建生成的所有文件的目录。-->
<directory>target/generated-sources</directory>
<!--打包生成的文件名称,默认是${artifactId}-${version}-->
<finalName>${artifactId}-${version}</finalName>
<!--启用filtering时的筛选器属性列表-->
<filters>
<filter>没有固定格式的文件列表</filter>
</filters>
<!--构建时需要的插件-->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>artifactId</artifactId>
<version>version</version>
<!--一些其他属性配置-->
</plugin>
</plugins>
</pluginManagement>
<!--和pluginManagement配置一样,不知所以-->
<plugins>
</plugins>
</build>
<!--一个项目本地构建概要文件的列表,它将在激活时修改构建过程。-->
<profiles>
<profile>
<id>build profile的唯一标识</id>
<!--自动触发包含该概要文件的条件逻辑。 -->
<activation>
<!--指定此配置文件是否默认激活的标志。-->
<activeByDefault>false</activeByDefault>
<!--指定当检测到匹配的JDK时将激活此配置文件。比如配置1.8,那么当项目使用jdk1.8的时候启动该构建过程,!1.8则匹配除1.8以外的所有版本-->
<jdk>1.8</jdk>
<!--指定当检测到匹配的操作系统属性时激活此配置文件。-->
<os>
<name>${os.name}</name>
<!--操作系统类型-->
<family>windows</family>
<!--用于激活概要文件的操作系统的体系结构。-->
<arch/>
<!--操作系统版本-->
<version>10.1</version>
</os>
</activation>
</profile>
</profiles>
<!--该项目的子模块信息-->
<modules/>
<!--配置远程仓库和拓展-->
<repositories>
<repository>
<id>仓库的唯一标识</id>
<url>仓库的url</url>
<name>仓库的名称</name>
<!--如何处理从这个存储库下载releases版本-->
<releases>
<!--是否启用 -->
<enabled>true</enabled>
<!--更新策略,always,daily(默认),interval:XXX,never(仅在本地不存在的情况下)-->
<updatePolicy>always</updatePolicy>
<!--校验失败时的策略,ignore,fail,warn(默认值)-->
<checksumPolicy>warn</checksumPolicy>
</releases>
<!--如何处理从这个存储库下载快照。配置参考releases-->
<snapshots>
</snapshots>
<!--此存储库用于定位和存储工件的布局类型,legacy或default-->
<layout>default</layout>
</repository>
</repositories>
<!--插件的仓库配置-->
<pluginRepositories>
<pluginRepository>
<id>仓库的唯一标识</id>
<url>仓库的url</url>
<name>……</name>
</pluginRepository>
</pluginRepositories>
<!--可以在整个POM中作为替代使用的属性,如果启用,则用作资源中的过滤器。-->
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--版本信息,可以通过parent自动寻找依赖,maven2开始,可以指定范围-->
<version>2.3.12.RELEASE</version>
<!--依赖的类型,默认是jar,还有war,ejb-client,test-jar等,更多的类型可以由extensions定义。-->
<type>jar</type>
<!--依赖的分类器。这允许区分属于同一个POM但构建方式不同的两个工件,并在版本之后添加到文件名中。[不是很明白]-->
<classifier>jdk14</classifier>
<!--定义该依赖的生命周期;compile,runtime,test,system,provided-->
<scope>compile</scope>
<!--当scope为system时启用,该属性不推荐使用,该属性可能会在后面的版本中被替换。该属性指定依赖在文件系统上得路径,需要绝对路径-->
<systemPath>/HOME</systemPath>
<!--从依赖中排除的引用-->
<exclusions>
<exclusion>
<groupId></groupId>
<artifactId></artifactId>
</exclusion>
</exclusions>
<!--指示要使用此库,依赖项是可选的。默认是false,如果是true,则本项目作为依赖被引用时,该依赖不会被加载-->
<optional>false</optional>
</dependency>
</dependencies>
<!--定义maven站点上生成报告的规范,在执行mvn site时使用-->
<reporting>
<!--默认false,如果为true,那么默认的报告不会包含在生成报告中-->
<excludeDefaults>false</excludeDefaults>
<!--报告输出目录,默认是${project.build.directory}/site-->
<outputDirectory>${project.build.directory}/site</outputDirectory>
<!--生成报告用到的插件-->
<plugins/>
</reporting>
<!--从该文件继承的项目的默认依赖项信息。 可以参考spring-boot-dependencies-->
<dependencyManagement>
<dependencies>
</dependencies>
</dependencyManagement>
<!--能够将站点和构件分别部署到远程web服务器和存储库的项目的分布信息。-->
<distributionManagement>
<!--将项目部署到远程仓库上所需的信息-->
<repository>
<!--仓库的唯一标识符。用来匹配存储库和setting.xml中的配置-->
<id>repo</id>
<!--仓库的名称-->
<name>lwl</name>
<!--仓库地址-->
<url>url</url>
<!--仓库定位和存储组件的布局类型:default、legacy-->
<layout>default</layout>
<!--是否为快照分配由时间戳和构建号组成的唯一版本,还是每次使用相同的版本,默认true-->
<uniqueVersion>true</uniqueVersion>
</repository>
<!--配置同上,快照库配置-->
<snapshotRepository>
<……>
</snapshotRepository>
<!--发布的站点信息-->
<site>
<!--站点id,与setting.xml匹配-->
<id>id</id>
<name>name</name>
<url>url</url>
</site>
<!--当前项目的下载地址-->
<downloadUrl>downloadUrl</downloadUrl>
<!--在组件被移至新的group ID和artifact ID时的重新定位信息-->
<relocation>
</relocation>
<!--该项目在仓库中的状态,默认none,可选值:converted(存储库管理器将其从Maven 1 POM转换而来),partner(直接从合作伙伴Maven 2存储库同步),deployed(是从Maven 2上部署的实例),verified(是否已手工验证为正确和最终)-->
<status>none</status>
</distributionManagement>
</project>