POM 项目对象模型
定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等
超级pom.xml位置:maven-model-builder-x.x.x.jar/org/apache/maven/model/
1. 远程仓库配置
<repositories>
<repository>
<id>central</id> 远程仓库的唯一标识
<name>Central Repository</name>
<url>http://repo.maven.apache.org/maven2</url> 仓库地址
<layout>default</layout> 仓库布局maven1值为legacy,maven2/3值为dafault
<releases> 发布版本
<enabled>true</enabled> 下载发布版本
<updatePolicy>never</updatePolicy> 从仓库检查更新频率
daily (每天一查)默认
never (不查)
always (每次构建都查)
interval:X (每个X分钟检查一次,X为任意整数)
<checksumPolicy>ignore</checksumPolicy> Maven检查校验文件
部署构件到仓库时,会部署对应的校验文件
下载构件时,会校验文件
warn 在构建时输出警告信息 默认
fail 校验错误构建失败
ignore 忽略校验的错误
</releases>
<snapshots> 快照版本
<enabled>false</enabled> 不下载快照版本
<updatePolicy>never</updatePolicy>
<checksumPolicy>ignore</checksumPolicy>
</snapshots>
</repository>
</repositories>
<releases>发布版本和<snapshots>快照版本都有<enabled>、<updatePolicy>、<checksumPolicy>
2. 部署至远程仓库
<distributionManagement>
<repository>
<id>proj-releases</id>
<name>xxx</name>
<url>http://ip/xxx/releases</url>
</repository>
<snapshotRepository>
<id>proj-snapshots</id>
<name>xxx</name>
<url>http://ip/xxx/snapshots</url>
</snapshotRepository>
</distributionManagement>
3. 插件仓库配置
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Central Repository</name>
<url>http://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</pluginRepository>
</pluginRepositories>
A.pom.xml属性介绍:
project: pom的xml根元素。
parent: 声明继承。
modules: 声明聚合,该值是一个当前POM的相对目录。用户项目的聚合。
groupId: 定义当前Maven项目隶属的实际项目。
artifactId: 定义实际项目中的一个Maven项目模块,一般为实际项目名称。
version: 定义Maven项目当前版本。
groupId、artifactId、version三个属性构成项目的坐标,必须全部填写。
packaging: 坐标元素之一,可以不填,不填默认jar,表示项目构建成jar包;值为war表示可部署的web项目。
name: 名称。
description: 项目描述。
organization: 所属组织。
licenses: 许可证。
mailingLists: 邮件列表。
developers: 开发者。
contributors: 贡献者。
issueManagement: 问题追踪系统。
ciManagement: 持续集成系统。
scm: 版本控制系统。
prerequisites-->maven: 要求maven最低版本,默认值为2.0.
build-->sourceDirectory: 主源码目录。
build-->scriptSourceDirectory: 脚本源码目录。
build-->testSourceDirectory: 测试源码目录。
build-->outputDirectory: 主源码输出目录。
build-->testOutputDirectory: 测试源码输出目录。
build-->resources-->resource: 主资源目录。
build-->testResources-->testResource: 测试资源目录。
build-->finalName: 输出主构件的名称。
build-->directory: 输出目录。
build-->filters-->filter: 通过properties文件定义资源过滤属性。
build-->extensions-->extension: 扩展Maven的核心。
build-->pluginManagement: 插件管理。
build-->plugins-->plugin: 插件。
profiles-->profile: POM Profile。
distributionManagement-->repository: 发布版本部署仓库。
distributionManagement-->snapshotRepository: 快照版本部署仓库。
distributionManagement-->site: 站点部署。
repositories-->repository: 仓库。
pluginRepositories-->pluginRepository: 插件仓库。
dependencies-->dependency: 依赖管理。
properties: Maven属性。
reporting-->plugins: 报告插件。
a-->b表示a元素嵌套着b元素。
B.settings.xml文件配置。
settings: settings.xml的根元素。
localRepository: 本地仓库。
interactiveMode: Maven是否与用户交互,默认值为true。
offline: 离线模式,默认false。
pluginGroups-->pluginGroup: 插件组。
servers-->server: 下载与部署仓库的认证信息。
mirrors-->mirror: 仓库镜像。
proxies-->proxy: 代理。
profiles-->profile: Settings Profile。
activeProfiles-->activeProfile: 激活Profile。
Maven目录下的conf文件夹下的settings.xml为全局的,影响所有用户的配置。一般建议修改c:\Users\用户名\.m2\目录下的settings.xml,属于局部的,只对当前目
录下的用户有用。