利用Nexus搭建Maven私有仓库

Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。Nexus 使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。Nexus支持WebDAV与LDAP安全身份认证。

利用Nexus搭建Maven私有仓库

私有仓库架设好以后,依赖的寻找路径变为:本地仓库->私有仓库->*仓库

nexus安装

下载(nexus)[https://www.sonatype.com/]
利用Nexus搭建Maven私有仓库
利用Nexus搭建Maven私有仓库
利用Nexus搭建Maven私有仓库

解压缩后保存两个文件夹

利用Nexus搭建Maven私有仓库

在nexus\nexus-3.29.1-01\bin目录下运行nexus

nexus /run

利用Nexus搭建Maven私有仓库
http://localhost:8081 ,打开nexus本地站点,点击登录,根据提示找到密码,用户名是admin
利用Nexus搭建Maven私有仓库

开启匿名访问

利用Nexus搭建Maven私有仓库

安装完毕

利用Nexus搭建Maven私有仓库

私有服务器仓库常用种类

  • proxy:代理仓库,本地仓库和远程仓库之间的枢纽
  • hosted:本地发布仓库

创建代理仓库

利用Nexus搭建Maven私有仓库

利用Nexus搭建Maven私有仓库

利用Nexus搭建Maven私有仓库

创建Release版本的仓库

利用Nexus搭建Maven私有仓库

创建Snapshot版本的仓库

利用Nexus搭建Maven私有仓库

配置私有仓库和发布仓库

<repositories>
    <!--配置私有仓库-->
    <repository>
        <id>k-nexus</id>
        <name>KNexus</name>
        <url>http://localhost:8081/repository/k-nexus/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>
<distributionManagement>
    <!--配置正式版发布仓库-->
    <repository>
        <id>mc-example-release</id>
        <name>Mc Example Release</name>
        <url>http://localhost:8081/repository/maven-releases/</url>
    </repository>
    <!--配置快照版发布仓库-->
    <snapshotRepository>
        <id>mc-example-snapshot</id>
        <name>Mc Example Snapshot</name>
        <url>http://localhost:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

测试代理仓库

引入一个依赖,或者直接删除本地仓库,查看依赖下载好,是否同时保存在私有仓库?如果保存,则测试成功

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
    </dependency>
</dependencies>

利用Nexus搭建Maven私有仓库

利用Nexus搭建Maven私有仓库

我们可以看出检查本地仓库没有后,项目主动去代理仓库寻找,代理仓库也没有则通过远程仓库(这里是阿里云)下载。

发布Snapshot仓库

利用Nexus搭建Maven私有仓库

报授权错误,在settings.xml中添加授权信息

<servers>
    <server>
        <id>k-nexus-snapshot</id>
        <username>admin</username>
        <password>wzy1gqqbuu</password>
    </server>
</servers>

再次发布后,到发布仓库查看,发布成功

利用Nexus搭建Maven私有仓库

发布Release版本

<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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mycompany.app</groupId>
    <artifactId>my-app</artifactId>
<!--    <version>1.0-SNAPSHOT</version>-->
    <version>2.0-RELEASE</version>

报同样的授权错误,同样授权信息

利用Nexus搭建Maven私有仓库

<servers>
    <!--snapshot仓库认证信息-->
    <server>
        <id>k-nexus-snapshot</id>
        <username>admin</username>
        <password>wzy1gqqbuu</password>
    </server>
    <!--release仓库认证信息-->
    <server>
        <id>k-nexus-release</id>
        <username>admin</username>
        <password>wzy1gqqbuu</password>
    </server>
</servers>

查看仓库,确认发布成功

利用Nexus搭建Maven私有仓库

总结

私有仓库假设在局域网或者服务器上,可以让大家共享,可以下载依赖,也可以发布依赖,避免了因本地环境发生变化而重新下载依赖,同时又提供了平台管理依赖。

上一篇:Maven之私服


下一篇:leetcode——217.存在重复元素