注意:本文章全部内容都是基于 MacOS M1芯片
首先我们需要明确的是为什么要搭建私服?
注意:本文章全部内容都是基于 MacOS M1芯片
Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。 利用Nexus你可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。
下载地址 这里博主下载的版本是 nexus-3.20.1-01
注意:此处第一次登录需要设置账号密码
(base) ? etc nexus start // 启动
Starting nexus
(base) ? etc
Maven仓库类型分为:
Version Policy类型分为:
创建 curtis-maven-release 正式库(hosted+release),curtis-maven-release(hosted+snapshot)快照库。名称可以自定义,能区分正式库和快照库即可。
修改中央仓库 maven-central 代理配置为aliyun仓库地址 http://maven.aliyun.com/nexus/content/groups/public/,修改之后下载依赖的速度会提升,默认的依赖比较慢。
配置仓库都放到 maven-public 统一访问,在Maven setting文件里面设置mirror。
修改 /nexus-3.20.1-01/etc/nexus-default.properties 文件端口
Pom文件,这里的打包方式是Pom,作为所有项目的基础依赖版本管理
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- maven version -->
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
</parent>
<groupId>curtis.project.bms</groupId>
<artifactId>bms-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!-- dependency manage -->
<dependencyManagement>
<dependencies>
</dependencies>
</dependencyManagement>
<!-- 远程仓库配置 -->
<distributionManagement>
<repository>
<id>curtis-maven-release</id>
<name>curtis-maven-release</name>
<url>http://localhost:10002/repository/curtis-maven-release/</url>
</repository>
<snapshotRepository>
<id>curtis-maven-snapshot</id>
<name>curtis-maven-snapshot</name>
<url>http://localhost:10002/repository/curtis-maven-snapshot/</url>
</snapshotRepository>
</distributionManagement>
</project>
修改文件Maven配置文件 ~/.m2/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>
<pluginGroup>org.codehaus.cargo</pluginGroup>
<pluginGroup>org.mortbay.jetty</pluginGroup>
</pluginGroups>
<!-- 公司库 -->
<servers>
<!-- 私库 -->
<server>
<!-- 唯一id 项目中pom中id必须一致 -->
<id>curtis-maven-release</id>
<!-- 账号密码为登录Nexus的账号密码 -->
<username>admin</username>
<password>admin</password>
</server>
<server>
<!-- 唯一id 项目中pom中id必须一致 -->
<id>curtis-maven-snapshot</id>
<!-- 账号密码为登录Nexus的账号密码 -->
<username>admin</username>
<password>admin</password>
</server>
</servers>
<mirrors>
<!-- 私库 -->
<mirror>
<id>curtis-maven-snapshot</id>
<name>ccurtis-maven-public</name>
<!-- 统一访问 -->
<url>http://localhost:10002/repository/maven-public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<!-- 阿里镜像 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
Maven deploy发布到私服
成功发布到Nexus
做一件事之前首先需要考虑当前的困境,为什么要做这件事?其次就是这件事能帮忙解决什么问题?有没有更好的办法?最后才是如何去做!!
如果单纯需要修改Maven仓库的镜像,那么其实修改Maven配置文件的Setting.xml文件,添加阿里镜像即可:
<mirrors>
<!-- 阿里镜像 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>