${user.home}/.m2/repository表示C:\Users\username.m2\settings.xml
settings.xml内容
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <pluginGroups></pluginGroups> <proxies></proxies> <localRepository>.m2/repository</localRepository> <mirrors> <mirror> <id>settings-mirror</id> <url>https://maven.aliyun.com/repository/public</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> <profiles> <profile> <id>xxx-product</id> <repositories> <repository> <id>xxx-xxx-repo</id> <url>url</url> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> <repositories> </profile> </settings>
本地仓库 > 特定仓库reporitory的镜像mirror > settings中配置的仓库repository
详细优先级: local-repo > settings-profile-repository > pom-profile-repository > pom-repository > central
本地仓库 > 私服 (profile)> 远程仓库(repository)和 镜像 (mirror) > 中央仓库 (central)
groupId com.huawei.xxxcommon.xxx artifactid xxx-service version 1.0 packaging jar(bundle war...) classifier 附加构建信息 groupid artifactid version是必须定义的 仓库地址: base + com/huawei/xxcommon/dmq/xxx-service/1.0/xxx.jar
为某个仓库repository做镜像, 填写的是repository id, * 匹配所有的仓库
相当于一个拦截器,它会拦截maven对remote repository的相关请求,
把请求里的remote repository地址,重定向到mirror里配置的地址
mirrorOf=“*” //刚才经过,mirror一切,你配置的repository不起作用了 mirrorOf=my-repo-id //镜像my-repo-id,你配置的my-repo-id仓库不起作用了 mirrorOf=*,!my-repo-id //!表示非运算,排除你配置的my-repo-id仓库,其他仓库都被镜像了 就是请求下载my-repo-id的仓库的jar不使用mirror的url下载,其他都是用mirror配置的url下载 mirrorOf=external:* //如果本地库存在就用本地库的,如果本地没有所有下载就用mirror配置的url下载
项目的发布形式jar war rar pom maven-plugin ear ejb par
maven3支持maven项目的多模块结构(聚合项目), 通常由一个父模块和若干个子模块构成
父模块必须以pom打包类型,同时以给出所有的子模块
是maven为了寻找父模块pom.xml所额外增加的一个寻找路径
<parent> <groupId>com.company.department.group</groupId> <artifactId>reponame</artifactId> <version>xxx-SNAPSHOT</version> <relativePath>../../../pom.xml</relativePath> </parent>