packing标签
定义了项目的打包方式,默认为jar
多模块项目中的父项目的pom.xml中的
<groupId>com.xiaodashu</groupId>
<artifactId>springboot-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
optional标签
当项目A依赖D,D的
scope标签
1.compile:默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去
2.test:依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit
3.runtime:表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过了编译而已。例如JDBC驱动,适用运行和测试阶段
4.provided:打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude操作
5.system:从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径
dependencyManagement标签
在多模块项目中可以通过父pom可以通过该标签管理子模块中的依赖版本,父pom中定义好依赖的版本,
子pom中的
<!--统一管理版本号-->
<dependencyManagement>
<dependencies>
<!--模块-->
<dependency>
<groupId>com.xiaodashu</groupId>
<artifactId>demo-dao</artifactId>
<version>${xiaodashu.demo-dao}</version>
</dependency>
</dependencies>
</dependencyManagement>
relativePath标签
默认值为../pom.xml
依赖的查找顺序 relativePath中定义的地址 -> 本地maven仓库 -> 远程仓库
如果设置一个空值将始终从仓库中获取,不从本地路径获取
<parent>
<groupId>com.eveus.cap</groupId>
<artifactId>cap-uid</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath />
</parent>
.mvnw文件
Maven Wrapper的文件,Maven Wrapper是maven的一个第三方插件,用来保证项目在不同的环境中maven版本的统一
如果配置了mvnw,执行项目的时候可以通过mvnw代替mvn执行命令,如果本地环境中的maven版本和mvnw定义的maven版本不一致,
则通过mvnw中设置的地址下载指定版本的maven,然后通过代理调用真实的mvn来执行命令。
modelVersion标签
指定了当前POM模型的版本,对于Maven2及Maven3来说,它只能是4.0.0
浙公网安备 33010602011771号