搭建Maven私服-Nexus

Maven 私服,可以代理远程仓库和部署自己或第三方构件。本文介绍使用最广泛搭建 Maven 私服的工具: Sonatype Nexus。

nexus

作者环境

本次搭建私服是在局域网的一台服务器上,操作系统为 CentOS 。
需要部署到私服的项目 soul
ssm 项目需要引用 soul

安装Java

确保服务器已经安装了 java 环境,这个过程不是本文重点,安装过程自行百度。

安装Nexus

官网 pro 版本的是需要付费的。所以我们使用免费的 OSS 版本,下载地址 (https://www.sonatype.com/download-oss-sonatype)

# 上传到服务器并解压
$ tar xvf nexus-3.5.1-02-unix.tar.gz

启动Nexus

# 启动服务
$ cd /nexus-3.5.1-02/bin/
$ ./nexus start

验证

打开网址:(http://192.168.0.86:8081/) , ip 为搭建私服的服务器 ip 。
用户名/密码: admin/admin123
出现一下画面,就说明安装成功了。


nexus

发布soul项目到私服

创建仓库

  1. 创建yelog-release仓库(名字自定义), type选择 : release
    ①.创建宿主仓库

    ②.选择hosted类型

    ③.创建release类型仓库
  2. 创建yelog-snapshot仓库(名字自定义), type选择 : snapshot
    重复上面 ① 和 ② 步,根据下图选择类型:
    创建snapshot类型仓库

两个都创建完成后,效果如下:


创建自定义release和snapshot仓库

pom中添加部署配置

url 复制上图中新建的仓库的 copy 按钮,复制url。

<distributionManagement>
    <repository>
        <id>yelog-release</id>
        <name>Release Repository of yelog</name>
        <url>http://192.168.0.86:8081/repository/yelog-release/</url>
    </repository>
    <snapshotRepository>
        <id>yelog-snapshot</id>
        <name>Snapshot Repository of yelog</name>
        <url>http://192.168.0.86:8081/repository/yelog-snapshot/</url>
    </snapshotRepository>
</distributionManagement>

在maven的 settings.xml 中配置

这里配置 maven 的账号密码,id 要与 distributionManagement 中的id一致。默认账号/密码:admin/admin123

<servers>
    <server>
      <id>yelog-realease</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    <server>
      <id>yelog-snapshot</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
</servers>

执行maven命令部署项目到私服上

我这里直接使用IDE的插件执行


部署项目到私服

部署完成后,可以在 yelog-snapshot 仓库中,查看部署的情况,如下图所示


查看部署情况

从私服拉去依赖库

上一步我们已经将项目 soul 部署到私服上了,这一步介绍项目 ssm 如何依赖引用 soul
私服中的 maven-central 可以链接远程仓库。这样,当有依赖在私服中找不到后,就可以通过远程仓库自动下载依赖。

pom 文件中添加如下配置

  1. public库成员仓库中添加我们自定义的仓库


    public库设置成员仓库
  2. 配置远程仓库为私服地址。
<repositories>
    <repository>
        <id>public</id>
        <name>public Repository</name>
        <url>http://192.168.0.86: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://192.168.0.86:8081/repository/maven-public/</url>
    </pluginRepository>
</pluginRepositories>
  1. 引入依赖
<dependency>
    <groupId>org.soul</groupId>
    <artifactId>commons</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>
  1. ssm项目就可以引用到soul代码


    在代码中就可以直接引用到部署到私服的soul项目代码

本文结束。

推荐阅读更多精彩内容

  • |-1-更新内容[6.从仓库解析依赖的机制(重要)] 1Maven仓库作用 仓库用来存储所有项目使用到构件,在ma...
    zlcook阅读 4,697评论 0 25
  • 首先私服是一种衍生出来的特殊的Maven远程仓库,构建私服的好处请看3.5私服 可以帮助大家建立私服的仓库管理软件...
    zlcook阅读 9,695评论 0 32
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 112,627评论 15 132
  • Nexus是Maven仓库管理器,也可以叫Maven的私服。Nexus是一个强大的Maven仓库管理器,它极大地简...
    飞扬小米阅读 839评论 0 51
  • 1926年,鲁迅四十五岁,经历了女师大风潮案,三一八惨案,还有与现代评论派陈西滢、章士钊之间的论战,鲁迅在苦闷、愤...
    明月心语阅读 1,590评论 0 0