maven历史版本下载地址:https://archive.apache.org/dist/maven/maven-3/
maven版本和java版本的关系:https://maven.apache.org/docs/history.html
项目中添加仓库
有两种方式
1.在pom.xml中添加(优先级高)
2.在setting.xml中添加
在pom.xml中添加
<!--声明一个或多个远程仓库 -->
<repositories>
<!-- 声明一个 Nexus 私服上的仓库 -->
<repository>
<!--仓库id -->
<id>nexus_id</id>
<!-- 仓库的名称 -->
<name>nexus_name</name>
<!--仓库的地址 -->
<url>nexus_repository_url</url>
<!-- 是否开启该仓库的 release 版本下载支持 -->
<releases>
<enabled>true</enabled>
</releases>
<!-- 是否开启该仓库的 snapshot 版本下载支持 -->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<!-- 声明一个或多个远程插件仓库 -->
<pluginRepositories>
<!--声明一个 Nexus 私服上的插件仓库 -->
<pluginRepository>
<!--插件仓库 id -->
<id>nexus_id</id>
<!--插件仓库 名称 -->
<name>nexus_name</name>
<!-- 配置的插件仓库的地址 -->
<url>nexus_repository_url</url>
<!-- 是否开启该插件仓库的 release 版本下载支持 -->
<releases>
<enabled>true</enabled>
</releases>
<!-- 是否开启该插件仓库的 snapshot 版本下载支持 -->
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
在setting.xml中添加
<profiles>
<profile>
<id>nexus</id>
<!--声明一个或多个远程仓库 -->
<repositories>
<!-- 声明一个 Nexus 私服上的仓库 -->
<repository>
<!--仓库id -->
<id>nexus_id</id>
<!-- 仓库的名称 -->
<name>nexus_name</name>
<!--仓库的地址 -->
<url>nexus_repository_url</url>
<!-- 是否开启该仓库的 release 版本下载支持 -->
<releases>
<enabled>true</enabled>
</releases>
<!-- 是否开启该仓库的 snapshot 版本下载支持 -->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<!-- 声明一个或多个远程插件仓库 -->
<pluginRepositories>
<!--声明一个 Nexus 私服上的插件仓库 -->
<pluginRepository>
<!--插件仓库 id -->
<id>nexus_id</id>
<!--插件仓库 名称 -->
<name>nexus_name</name>
<!-- 配置的插件仓库的地址 -->
<url>nexus_repository_url</url>
<!-- 是否开启该插件仓库的 release 版本下载支持 -->
<releases>
<enabled>true</enabled>
</releases>
<!-- 是否开启该插件仓库的 snapshot 版本下载支持 -->
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus_id</activeProfile>
</activeProfiles>
项目下载依赖的顺序
怎么理解mirrorof
在setting.xml中声明镜像
<mirrors>
<mirror>
<id>xx</id>
<name>xx</name>
<mirrorOf>*</mirrorOf>
<url>http://ip:port/nexus/xx</url>
</mirror>
</mirrors>
mirrorOf其实就是拦截条件
比如one.jar依赖,本来要去仓库A才能下载,但当镜像中的mirrorOf为仓库A,则会跳转到镜像xx的地址http://ip:port/nexus/xx中去找该依赖,而不会再去仓库A中找
部署依赖到 Nexus
1.配置项目的 POM 文件。
<project>
...
<distributionManagement>
<repository>
<id>repository_id1</id>
<url>http://ip1:port1/xxxxxx</url>
</repository>
<snapshotRepository>
<id>repository_id2</id>
<url>http://ip2:port2/xxxxxx</url>
</snapshotRepository>
</distributionManagement>
</project>
2.在 setting.xml 中配置认证信息。
<settings>
...
<servers>
<server>
<id>repository_id1</id> <!--和pom.xml中的id保持一致-->
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>repository_id2</id> <!--和pom.xml中的id保持一致-->
<username>admin</username>
<password>admin123</password>
</server>
</servers>
</settings>
3.使用 mvn 命令部署构件。
mvn deploy