Maven私服搭建与使用

本文以Sonatype Nexus为例讲述Maven私服的搭建过程,以及发布jar包和使用私服jar包的过程。

本篇文章主要的环境依赖如下:

软件 版本
操作系统 CentOS
JDK 1.8+

1. Nexus搭建

Sonatype下载免费的OSS版本。

1
2
3
4
5
6
##解压
tar -zxvf nexus-3.25.0-03-unix.tar.gz

##启动
cd nexus-3.25.0-03/bin
./nexus start

注意:Nexus运行,官方推荐你的机器至少需要4G以上内存。

打开: http://你的IP:8081/ 按照提示输入admin账号密码即可,接下来创建你的自定义私有仓库:

image
分别创建两个maven2(hosted)类型的私有仓库:zhaoyh-test-repo-snap(快照版)和zhaoyh-test-repo-release(正式版),如图所示:

image

今后,你就可以把jar包推送到这两个私有仓库即可,但是,这两个仓库对外是不能public访问的,因此,需要在maven-public仓库中引入这两个私有仓库:

image

引入之后,你只需要在本地引入maven-public,就可以拿到私有仓库里的jar包了。

2. 发布jar包

在项目的pom.xml中,添加发布需要的仓库配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- 发布到mvn仓库配置 -->
<distributionManagement>
<repository>
<id>zhaoyh-test-repo-release</id>
<name>Release Repository of zhaoyh</name>
<url>http://你的IP:8081/repository/zhaoyh-test-repo-release</url>
</repository>
<snapshotRepository>
<id>zhaoyh-test-repo-snap</id>
<name>Snapshot Repository of zhaoyh</name>
<url>http://你的IP:8081/repository/zhaoyh-test-repo-snap/</url>
</snapshotRepository>
</distributionManagement>

发布jar包到maven仓库需要账号密码,在你本地的maven的settings.xml文件中加入:

1
2
3
4
5
6
7
8
9
10
<server>
<id>zhaoyh-test-repo-release</id>
<username>admin</username>
<password>123</password>
</server>
<server>
<id>zhaoyh-test-repo-snap</id>
<username>admin</username>
<password>123</password>
</server>

接下来就可以执行命令发布jar包:

1
mvn clean && mvn deploy

打开Nexus平台查看上传成功的jar包:

image

3. 引用私服的jar包

如果需要引用jar包的项目是基于maven构建,则在pom中加入仓库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!-- 远程仓库配置 -->
<repositories>
<repository>
<id>public</id>
<name>public Repository</name>
<url>http://你的IP:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>public</id>
<name>Public Repositories</name>
<url>http://你的IP:8081/repository/maven-public/</url>
</pluginRepository>
</pluginRepositories>

如果需要引用jar包的项目是基于gradle构建,则在build.gradle中加入仓库:

1
2
3
4
5
6
7
8
9
10
repositories {

//maven私服
maven {
url 'http://你的IP:8081/repository/maven-public/'
}

// maven中央仓库
mavenCentral()
}

接下来就一路顺风了,在pom.xml或build.gradle中引入你需要的包就可以。

以上内容就是Maven私服搭建与使用的全部内容了,谢谢你阅读到了这里!

Author:zhaoyh