仓库管理器也叫私服或代理仓库

仓库管理器有两个服务目的:首先它的角色是一个高度可配置的介于你的组织与公开Maven仓库之间的代理,其次它为你的组织提供了一个可部署你组织内部生成的构件的地方。

1Nexus介绍

Nexus是一个强大的Maven仓库管理器, 它极大地简化了自己内部仓库的维护和外部仓库的访问。

利用Nexus你可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。

Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。

Nexus使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,通过m2eclipse与Eclipse集成使用。

Nexus支持WebDAV与LDAP安全身份认证。

2安装Nexus

2.1下载

下载地址:https://www.sonatype.com/download-oss-sonatype

云盘下载:https://pan.baidu.com/s/1ZivSkF8KKAoI1NeP-Ne4-A 提取码:o7wb

2.2安装

解压到非中文路径下

在cmd下切换到bin目录执行 nexus install

以管理员身份打开cmd,否则有可以出现拒绝访问的问题

启动服务

nexus start

2.3测试访问

地址:http://localhost:8081/nexus

默认 账号: admin 密码: admin123

3nexus介绍

3.1 仓库类型

名称 说明
group 仓库组,包含宿主仓库和代理仓库
hosted 代表宿主仓库,存放本公司开发jar包,以及一些第三方不允许的组件,比如oracle驱动、比如商业软件jar包
proxy 代表代理远程的仓库,最典型的就是Maven官方中央仓库、JBoss仓库等等
virtual 虚拟

3.2 默认仓库介绍

仓库名称 描述
Public Repositories 仓库组
3rd party 无法从公共仓库获得的第三方发布版本的构件仓库
Apache Snapshots 用了代理ApacheMaven仓库快照版本的构件仓库
Central 用来代理maven中央仓库中发布版本构件的仓库
Central M1 shadow 用于提供中央仓库中M1格式的发布版本的构件镜像仓库
Codehaus Snapshots 用来代理CodehausMaven 仓库的快照版本构件的仓库
Releases 用来部署管理内部的发布版本构件的宿主类型仓库
Snapshots 用来部署管理内部的快照版本构件的宿主类型仓库

4nexus配置

4.1开启远程索引

方式一:

新搭建的neuxs环境只是一个空的仓库,需要手动和远程中心库进行同步,nexus默认是关闭远程索引下载,最重要的一件事情就是开启远程索引下载。登陆nexus系统,默认用户名密码为admin/admin123。点击左边Administration菜单下面的Repositories,找到右边仓库列表中的二个仓库Apache Snapshots,Maven Central,然后再没有仓库的configuration下把Download Remote Indexes修改为true。如下图

然后在Apache Snapshots,Codehaus Snapshots和Maven Central这三个仓库上分别右键,选择Repari Index,这样Nexus就会去下载远程的索引文件。

这样设置以后, Nexus会自动从远程中央仓库下载索引文件, 为了检验索引文件自动下载是否生效,切换到Browse Index

这种方式需要从远程站点下载,速度相对比较慢。

方式二、

直接给大家提供下载好的仓库索引文件,直接覆盖就可以了。

链接:https://pan.baidu.com/s/1_Rofajqlt4LaI8B_l9sUCg

提取码:616l

步骤:

1.先停止nexus服务



2.将给你文件解压缩。

3.删除该目录下所有文件%Nexus_Home%\sonatype-work\nexus\indexer\central-ctx。然后将解压的文件复制进去,



4.重启服务即可。

这样后面就不用再去官网查找了!!!

4.2创建宿主仓库

新建公司的内部仓库:

步骤为Repositories –> Add –> Hosted Repository,在页面的下半部分输入框中填入Repository ID和Repository Name即可,比如分别填入

myId 和 myRepostiory,另外把Deployment Policy设置为Allow Redeploy,点击save就创建完成了。



4.3创建Nexus仓库组

4.4如何在maven中使用自己的私服。

在setting.xml文件中:



的servers节点中添加

<server>
<id>nexus</id>
<username>admin</username>
<password>admin123</password>
</server>



其次在mirrors节点中配置:

<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://localhost:8081/nexus/content/groups/DpbGroup/</url>
</mirror>



更新eclipse的配置

注意:一定把勾去掉,不然不会远程下载。



maven项目中通过坐标下载测试。

<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>

成功

5上传jar包私服

1.在conf/setting.xml文件中配置认证

<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>

2.在将要上传的pom.xml中配置jar上传的路径

<!-- 配置上传私服路径 -->
<distributionManagement>
<repository>
<id>releases</id>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>

3.执行上传命令 deploy

4.查看上传结果

6.上传特定jar包到私服

Oracle驱动包



<dependency>
<groupId>com.dpb.oracle</groupId>
<artifactId>ojdbc6-dpb</artifactId>
<version>1.0.0</version>
</dependency>

通过此坐标使用

7.从私服上下载jar包

7.1在conf/setting.xml中配置 模板

<profile>
<id>dev</id>
<repositories>
<repository>
<id>nexus</id>
<url>http://localhost:8081/nexus/content/groups/public/</url>
<!--是否下载releases构件 -->
<releases>
<enabled>true</enabled>
</releases>
<!--是否下载snapshots构件 -->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories> <pluginRepositories>
<pluginRepository>
<id>public</id>
<name>Public_Repositories</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>

7.2激活模板

  <!-- 激活模板-->
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>

7.3测试使用

使用Oracle的jar包

8.私服中配置代理

虽然搭建了私服,但是如果私服中没有我们需要的jar包,它还是会去中央仓库去下载,这是速度同样很慢,这时我们可以在nexus中添加阿里的代理服务器。步骤如下:

远程地址是:http://maven.aliyun.com/nexus/content/groups/public/

在把该代理仓库添加到group中



如此:使用的时候就会先通过阿里镜像代理去下载

上一篇:Maven教程3(依赖管理)

下一篇:maven教程5(聚合工程)

Maven教程4(私服-nexus)的更多相关文章

  1. Maven教程3(依赖管理)

    Maven教程2(Eclipse配置及maven项目) Maven项目,依赖,构建配置,以及构件:所有这些都是要建模和表述的对象.这些对 象通过一个名为项目对象模型(Project Object Mo ...

  2. Centos 基础开发环境搭建之Maven私服nexus

    hmaster 安装nexus及启动方式 /usr/local/nexus-2.6.3-01/bin ./nexus status Centos 基础开发环境搭建之Maven私服nexus . 软件  ...

  3. Ubuntu server下搭建Maven私服Nexus

    Ubuntu server下搭建Maven私服Nexus Maven私服Nexus的作用,主要是为了节省资源,在内部作为maven开发资源共享服务器来使用. 1.下载 通过root用户进去Ubuntu ...

  4. 使用 Maven 部署 artifact 到 Nexus 教程

    本文侧重讲解如何将已经按照好的 Maven 和 Nexus 连接,即如何通过 Maven 部署 artifact 到 Nexus. 本文前提: 1. 安装好 Maven.可以使用 Maven 创建.打 ...

  5. maven,本地仓库和私服nexus的配置,以及eclipse载入maven

    首先可以进入http://maven.apache.org/官网查看如何配置 一.配置环境 1 确定自己的java运行环境配置正确-->在cmd运行 java -version或echo %JA ...

  6. maven之如何将自己的写的 maven 构件发布到 nexus 私服

    概念:Nexus服务器是一个代码包管理的服务器,可以理解 Nexus 服务器是一个巨大的 Library 仓库.Nexus 可以支持管理的工具包括 Maven , npm 等,对于 JAVA 开发来说 ...

  7. maven的安装配置超详细教程【含nexus】

    1 下载 下载地址:http://maven.apache.org/download.cgi 界面效果如下: 点击之后进入的apache 软件基金的发布目录,在这里你可以下载apache的所有项目. ...

  8. maven学习记录四——私服 nexus

    8       私服 nexus 安装nexus 启动服务 启动失败的解决方法: 登录nexus 用户名/密码  admin/admin123 仓库类型 Virtual   虚拟仓库 Proxy  代 ...

  9. MAVEN学习笔记之私服Nexus(2)

    MAVEN学习笔记之私服Nexus(2) 私有服务器搭建 Nexus www.snatype.org下载 snatype-work 是默认nexus存储nexus a:将bin添加到环境中 Admin ...

随机推荐

  1. 解决vs code 内置终端,字体间隔过大问题。(linux centos7成功)

    如图. 去文件-首选项-设置里修改. "terminal.integrated.fontFamily": ""注意此处默认为空白,所以显示的就比较奇怪. 此处我 ...

  2. Delphi 域名解析为IP地址

    花生壳:1.LJSZForm-Lable1-Caption改成 “IP地址或域名:”2.LJSZForm-BitBtn1Click-注释掉--else if IsIP(Trim(IPEdit.Text ...

  3. javascript 跨域 的几种方法

      1.jsonp方法 转:https://blog.csdn.net/liusaint1992/article/details/50959571 主要实现功能: 1.参数拼装. 2.给每个回调函数唯 ...

  4. 2019.02.16 bzoj5466: [Noip2018]保卫王国(链分治+ddp)

    传送门 题意简述: mmm次询问,每次规定两个点必须选或者不选,求树上的带权最小覆盖. 思路: 考虑链分治+ddpddpddp 仍然是熟悉的套路,先考虑没有修改的状态和转移: 令fi,0/1f_{i, ...

  5. Unittest中TestCase类中定义的几个特殊方法

    1.setUp():每个测试方法运行前运行,测试前的初始化工作: 2.tearDown():每个测试方法运行结束后运行,测试后的清理工作: 3.setUpClass():所有的测试方法运行前运行,单元 ...

  6. Solidity合约记录——(三)如何在合约中对操作进行权限控制

    合约中一般会有多种针对不同数据的操作:例如对于存证内容的增加.更新及查询,若不进行一套符合要求的权限控制,事实上整个合约在真实环境下是没有多少使用价值的.那么应当如何对合约的权限进行划分?我们针对So ...

  7. Android系统的镜像文件的打包过程

    在前面一篇文章中,我们分析了Android模块的编译过程.当Android系统的所有模块都编译好之后,我们就可以对编译出来的模块文件进行打包了.打包结果是获得一系列的镜像文件,例如system.img ...

  8. VDD,VCC,VSS,VEE,VDDA,VSSA,

    VDD是主供电电源,也是IO口输出电平的输入电源.VDDA(A表示模拟)是模拟电源,当使用到模拟信号的时候,比如AD(模数)或者DA(数模)的时候,系统会使用VDDA的电压作为参考电压来.不要求精准使 ...

  9. Build.gradle的详细配置说明

    转自:http://blog.csdn.net/u012246458/article/details/51722624 apply plugin: 'com.android.application'/ ...

  10. 网易易盾最新一代Java2c加固究竟有什么厉害之处?

    导语:几个月前,网易易盾正式推出Java2c加固.它以独有的"静态保护"技术,使得应用程序中的代码出现"下沉",达到不可逆的效果,兼顾"冷热启动时间& ...