maven Nexus 私服

     

前言:

      本文是关于maven nexus私服的总结,至于maven的基础知识和在Myeclipse环境下整合ssm项目,可查看:

http://blog.csdn.net/huangchongwen/article/details/79302517

   一 首先解决一个疑问,为什么需要搭建私服?

 公司一般都有个自己的私服来管理各种jar包,原因大概有这么4个,分别是:

    1、有的公司不能访问外网,只能通过私服来管理jar包和插件;

    2、公司网速比较慢,通过公司的私服来获取jar包比较快;

    3、内部的的一些jar包或者第三方jar(如驱动类的jar)放在私服上,比较方便的大家使用。

           4、公司内部同一IP地址高并发访问中心仓库容易被认为恶性访问。

   

   二  nexus下载和启动   

    下载地址  http://www.sonatype.org/nexus/go

     这个下载下来后是绿色版的(不需要安装,直接解压即可),进入bin/jsw/选择你系统的版本/console-nexus.bat,运行http://127.0.0.1:8081/nexus/

8081为默认的端口号,要修改端口号可进入\conf\打开nexus.properties文件,修改application-port属性值就行了。默认的用户名和密码:admin/admin123

   进去之后:

       

 三 仓库介绍

      第一类: Host仓库 , 也叫宿主仓库。

    里面有个: Releases 是发行仓库 ,一般存放公司内部的jar文件,是发行版本  

  Snapshots 是镜像版本,也就是测试版本。

 3rd party 为第三方仓库,存放的是第三方jar包,可能在中心仓库中是找不到的

      第二类  :代理仓库

        中心仓库的代理仓库 central: 没有的jar包,通过这个代理仓库去中心仓库下载(到该仓库)

      三类 组仓库:public 虚拟仓库

   - - - 有点像仓库的索引; 

      我们打开组仓库,如下图,仓库组主要作用jar下载时, 依次访问里面配置的仓库组

      


四: maven项目的jar下载(依赖)顺序

  

     五:  maven关联私服(从私服下载jar,而不是直接找中心仓库)

      修改配置文件: 

 pom.xml
  <repositories>
    <repository>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>public</id>
      <name>public</name>
      <url>http://127.0.0.1:8081/nexus-2.6.2/content/groups/public/</url>
    </repository>
  </repositories>
   <!-- 加载的是maven生命周期插件的jar包 -->
  <pluginRepositories>
    <pluginRepository>
      <releases>
        <updatePolicy>never</updatePolicy>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>public</id>
      <name>public</name>
      <url>http://127.0.0.1:8081/nexus-2.6.2/content/groups/public/</url>
    </pluginRepository>
  </pluginRepositories>
           

   本来配置的是"中心仓库",现在改为私服中"仓库组"URL即可,如上图依次在私服中找jar包,假如找不到,就去找中心仓库。

我们看看"中心代理仓库"的配置,Remote Storage Location:https://repo1.maven.org/maven2/    正是中心仓库地址

 

  六  jar上传 

   第一种方式: 

     手动上传一个jar到3rd party仓库里面。 这里来个mysql驱动包

     

     

  刷新之后可以看到:


     

      

第二种方式:

      通过Myeclipse快捷键或者mvn deploy将jar包发布到仓库中。

pom.xml
  <distributionManagement>
  <!-- 发布到 快照版本的仓库,即 测试版本仓库 -->
  <snapshotRepository>
  <id>snapshots</id>
  <url>http://127.0.0.1:8080/nexus-2.6.2/content/repositories/snapshots/</url>
  </snapshotRepository>
  <!-- 发布到 发行版本的仓库中,也可以发布到3rd party 仓库 -->
  <repository>
    <id>releases</id>
  <url>http://127.0.0.1:8080/nexus-2.6.2/content/repositories/releases/</url>
  </repository>
  
  </distributionManagement>

注意:必须指定相关仓库的id和URL, 具体参数可以查看nexus中对应仓库。

    

发布到快照版本的仓库,同时指定id和URL即可; 
<!-- 发布到 快照版本的仓库,即 测试版本仓库 -->
  <snapshotRepository>
  <id>snapshots</id>
  <url>http://127.0.0.1:8080/nexus-2.6.2/content/repositories/snapshots/</url>
  </snapshotRepository>

   思考一下: 单单这样可以吗? 我们从私服上下载jar不需要登录(获取相关权限),但是上传也不需要吗?我们想想中心仓库就知道一切了。我们还需要修改本地仓库的setting.xml,加上如下代码来获取权限。

      

 之后我们可以在仓库组或者具体仓库中看到上传成功的jar包

      ==========================================================

最后: 祝学习愉快~


猜你喜欢

转载自blog.csdn.net/huangchongwen/article/details/79323639