提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
随着maven管理依赖越来越流行,有必要了解一下pom文件的配置。
一、pom文件里都有哪些配置
<project>
...
<dependencies>
<dependency>
<groupId>实际项目</groupId>
<artifactId>模块</artifactId>
<version>版本</version>
<type>依赖类型</type>
<scope>依赖范围</scope>
<optional>依赖是否可选</optional>
<!—主要用于排除传递性依赖-->
<exclusions>
<exclusion>
<groupId>…</groupId>
<artifactId>…</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependencies>
...
</project>
project 是根元素,声明了一些POM相关的命名空间及xsd元素
modelVersion指定了当前POM的版本,对于Maven 3来说,值只能是4.0.0
groupId定义了项目属于哪个组织,通常是组织域名的倒序
artifactId定义了项目在组织中的唯一ID
version指定了项目当前的版本,SNAPSHOT意为快照,说明该项目还处于开发中
name 声明了一个对于用户更为友好的项目名称
<repositories>
<repository>
<id>ali-maven</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
</repositories>
repositories 可以包含一个或者多个repository元素,以声明一个或者多个仓库
id,仓库声明的唯一id,需要注意的是,Maven自带的中央仓库使用的id为central,如果其他仓库也使用了该id,就会覆盖中央仓库的配置
url,指向了仓库的地址
releases和snapshots,用来控制Maven对于发布版构件和快照版构件的下载权限
enabled子元素为 true 时表示可以从仓库下载发布版构件和快照版构件
updatePolicy 子元素用来配置Maven从远处仓库检查更新的频率
1)默认值是daily,表示每天检查一次
2)never 表示从不检查
3)always表示每次构建时检查更新
4)interval表示每隔X分钟检查一次更新(X为任意整数)
checksumPolicy 子元素用来配置Maven检查校验的策略
当checksumPolicy的值为默认的warn时,Maven会在执行构建时输出警告信息
值为fail 时,Maven遇到校验错误就让构建失败
值为ignore时,Maven将完全忽略校验
<distributionManagement>
<repository>
<id>releases</id>
<name>public</name>
<url>http://59.50.95.66:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshots</name>
<url>http://59.50.95.66:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
repository表示发布版本构件的仓库
snapshotRepository 表示快照版本(开发测试用)的仓库
这两个元素都需要配置id、name和url,id为远程仓库的唯一标识,name是为了方便阅读,url表示仓库的地址
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<mirrorOf>*</mirrorOf>,匹配所有远程仓库
<mirrorOf>central</mirrorOf> 表示任何对于中央仓库的请求都会转至该镜像
二、maven常用命令
mvn clean
表示运行清理操作(会默认把target文件夹中的数据清理)
mvn clean compile
表示先运行清理之后运行编译,会将代码编译到target文件夹中
mvn clean test
运行清理和测试
mvn clean package
运行清理和打包
mvn clean install
运行清理和安装,会将打好的包安装到本地仓库中,以便其他的项目可以调用
mvn clean deploy
运行清理和发布(发布到私服上面)
mvn help:effective-settings
查看 Maven 的有效配置信息
三、maven常用属性
${project.build.sourceDirectory}
项目的主源码目录,默认为src/main/java/
${project.build.testSourceDirectory}
项目的测试源码目录,默认为 /src/test/java/
${project.build.directory}
项目构建输出目录,默认为 target/
${project.build.outputDirectory}
项目主代码编译输出目录,默认为 target/classes/
${project.build.testOutputDirectory}
项目测试代码编译输出目录,默认为 target/testclasses/
${project.groupId}
项目的 groupId
${project.artifactId}
项目的 artifactId
${project.version}
项目的 version,于 ${version} 等价
${project.build.finalName}
项目打包输出文件的名称,默认为${project.artifactId}${project.version}
总结
以上就是常用的pom文件中的属性介绍。