nexus私服搭建和发布文件到私服

  1. Nexus 简介
    Nexus 是一个强大的 Maven 仓库管理器 , 它极大地简化了自己内部仓库的维护和外部仓库的访问 ; 利用 Nexus 你可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个 Artifact ; Nexus 是一套 “开箱即用” 的系统不需要数据库 , 它使用文件系统加 Lucene 来组织数据 ; Nexus 使用 ExtJS 来开发界面 , 利用 Restlet 来提供完整的 REST APIs , 通过 m2eclipse 与 Eclipse 集成使用 ; Nexus 支持 WebDAV 与 LDAP 安全身份认证 ; 使用私服具有以下的好处 :
    节省外网带宽
    加速 Maven 构建 , 提高效率
    内部部署构件
    灵活的安全和权限管理
    访问流程如下如所示 :

  2. 下载安装
    官网下载地址 :
    https://www.sonatype.com/download-oss-sonatype
    选择对应的版本下载即可 , 我下载的是目前最新的 nexus-3.10.0-04 ;
    Nexus3.x 不同于Nexus2.x 是免安装的 , 下载之后解压到指定文件夹就可以了 , 比如 : D:\nexus
    解压完以后会有两个文件夹 , nexus-3.10.0-04 和 sonatype-work , nexus-3.10.0-04 是程序文件夹 , 里面有个 bin 文件夹存放了运行的程序入口 ; sonatype-work 主要是配置/缓存/存储文件夹 ;

  3. 运行 Nexus 服务
    打开命令行 , 切换到 Nexus 程序目录 :

D:
cd D:\nexus\nexus-3.10.0-04\bin
nexus.exe /run

输入 nexus.exe /run , 运行程序 :

对于不熟悉命令提示符命令操作的用户,还有一种简单的打开命令提示符窗口的办法:
进入“NEXUS_HOME\nexus\nexus-3.1.0-04\bin”目录。
按住Shift键,同时鼠标右键单击,选择“在此处打开命令窗口”。
输入 nexus.exe /run,回车即可运行。

过程会比较慢 , 出现如下提示运行成功 :

Started Sonatype Nexus OSS 3.7.1-02


默认端口是 8081 , 要修改端口时需要修改 …\sonatype-work\nexus3\etc” 目录下的 nexus.properties 配置文件 , 修改其中的端口即可(因为8081端口经常被占用,没有占用没有必要修改)
浏览器访问直接输入 http://localhost:8081/ , 即可进入主页 :
主页访客身份可以浏览已经下载到私服的文件目录 , 如下 :
点击右上角用管理员身份登陆进去 , 默认账户密码是 admin , admin123 :
这里面可以设置 Nexus 的各种仓库配置
4. ideal 中使用 Nexus
回到刚刚的管理员仓库管理界面 , 复制 maven-central仓库的地址 :
然后在ideal里面的 Maven 项目中配置 pom 文件 , 如下 :

<repositories>
<repository>
<id>nexux</id>
<name>maven-snapshots</name>
<url>http://localhost:8081/repository/maven-central/</url>
</repository>
</repositories>

保存后就会去给个配置的 Nexus 私服下载 ,
私服先检查本地有没有缓存 , 没有缓存就去中央仓库下载 ;

5.发布项目到 Nexus
首先在项目的 pom.xml 文件中配置发布信息 :

<distributionManagement>
<repository>
<!--id:对应setting.xml中server id -->
<id>nexus</id>
<!--name:nexus Repository name-->
<name>maven-snapshots</name>
<!--url:nexus Repository url-->
<url>http://localhost:8081/repository/maven-snapshots/</url>
</repository>
</distributionManagement>

然后在本地 Maven 仓库的设置文件中配置 server 节点 :
设置文件默认在 Maven 仓库目录下 , 如 :C:\Users\pact.m2\settings.xml , 没有的话可以新建一个

<servers>
    <server>
        <id>nexus</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
</servers>
<!--mirror:nexus地址-->
<mirrors>
    <mirror>
        <!--This sends everything else to /public -->
        <id>nexus</id>
        <mirrorOf>*</mirrorOf>
        <!--这里不配置central public releases等仓库的原因 因为本地开发的时候打的版本是snapshots版本,不能直接上传到他们里面,实际开发中要是发布的版本是releases,可以配置上面的仓库 -->
        <url>http://localhost:8081/repository/maven-snapshots/</url>
    </mirror>
</mirrors>

账户一定是要有发布权限的账户 , 否则会提示无法授权错误
然后发布项目 , 运行 clean deploy 命令 , 出现如下输出则成功发布 :
再去网页端查看 , 会发现刚刚发布的项目已经在 Nexus 库中了 :

猜你喜欢

转载自blog.csdn.net/man_8211/article/details/80002545