使用Nexus搭建私服

1、Nexus下载

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

2、Nexus启动

      我下载的是zip包,解压后进入\nexus-2.1.2-bundle\nexus-2.1.2\bin\jsw\,根据操作系统类型选择文件夹,我选的是windows-x86-64文件夹,进入后可看到如下所示bat文件。

                                                    使用Nexus搭建私服_第1张图片

双击console-nexus.bat运行。游览器中输入http://localhost:8081/nexus/,出现如下图所示就代表nexus已经启动成功。8081为默认的端口号,要修改端口号可进入nexus-2.1.2-bundle\nexus-2.1.2\conf\打开nexus.properties文件,修改application-port属性值就可以了。

                                          使用Nexus搭建私服_第2张图片

默认的用户名和密码:admin/admin123,登录后如下图所示:

                                      使用Nexus搭建私服_第3张图片

3、Nexus仓库

      nexus的仓库类型分为以下四种:group(仓库组)、hosted(宿主)、 proxy(代理)、 virtual(虚拟)。首次登陆nexus后可以看到以下一个仓库组和多个仓库。MAVEN安装目录\sonatype-work\nexus\下的indexer文件夹下存放jar包坐标索引;\sonatype-work\nexus\storage\central存储私服从中央仓库下载下的jar包。

                           使用Nexus搭建私服_第4张图片

 

        group:仓库组:能合并多个hostedproxy仓库,当你的项目希望引用连接(repository)多个资源(hostedproxy仓库)时,就不需要多次引用了,只需要引用一个group仓库组即可。比如仓库组public Repositories可用于整合3rd partycentralreleasessnapshots等仓库,后期用于私服上jar包下载。

        hosted:宿主:本地仓库,通常我们会部署自己的构建(项目)到这一类仓库,以及把下载的jar包上传到hosted本地仓库。比如本地仓库releases一般存储项目发布版(deploy),本地仓库snapshots存放项目测试版,本地仓库3rd party一般用于上传jar包。

         proxy:代理:通常被用来代理远程的公共仓库,如maven中央仓库或者https://repo1.maven.org/maven2/。当搭建的私服没有所需的资源,可以去Maven中央仓库或者其他仓库去下载。

         virtual:虚拟

4、配置nexus

      新搭建的neuxs环境只是一个空的仓库,需要手动和远程中心库进行同步,nexus默认是关闭远程索引下载,最重要的一件事情就是开启远程索引下载。登陆nexus系统,默认用户名密码为admin/admin123

       点击左边Administration菜单下面的Repositories,找到右边仓库列表中的三个仓库Apache SnapshotsCentral仓库,在下方点击configuration 在外网环境中一定记得将Download Remote Indexes 设为true,这样代理仓库才会下载索引;我们需要的正是这个索引。

        在配置中还有个Remote Storage Location 是远程仓库的地址,可以根据需求自己添加,不过默认的repo1的仓库也已经差不多够用了。如果需要配置其他仓库,可以去搜索其他的仓库地址

                                          使用Nexus搭建私服_第5张图片

       配置好后点击保存,然后在Browse remote选项卡中点击刷新,如果能看见远程仓库的索引文件就代表配置成功了。

                                       使用Nexus搭建私服_第6张图片

       然后我们需要在外网将这个索引下载下来。需要右键central  选择update index或者Repari Index,然后会等待漫长的时间,等待索引文件下好。期间可以查看下载进度在左侧选项栏里面点击AdministratorScheduled Tasks 

                                       使用Nexus搭建私服_第7张图片

        索引文件非常大,经常在1~2G左右。而且会由于一些特殊原因下载不稳定。这时候我们可以去直接下载索引文件,然后拷贝解压到本地索引目录即可

http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.properties
http://repo1.maven.org/maven2/.index/nexus-maven-repository-index.gz

         这是下载地址,下载后将nexus仓库关闭,然后解压到索引目录即可。因为nexus启动后默认会在同级安装目录建设本地仓库,所以进入安装目录\sonatype-work进入indexer目录,因为我们的代理名为central所以找到central-ctx ,将下载好的文件解压进去后。重新启动nexus,若能在central browse index中看到和remote一样的索引,即代表成功完成。

         具体步骤可以参考:https://blog.csdn.net/fn0723/article/details/81176489

        到此外网的nexus代理仓库搭建基本完成,若要通过maven进行访问需要代理仓库地址。我们可以进入public repository中点击configuration 查看centural是否在左侧中,若没有就添加进去,然后将public仓库的地址拷贝出来,一般情况下是http://localhost:8081/nexus/content/groups/public/ 将这个地址配置进MAVEN中即可访问该代理仓库。

                                               使用Nexus搭建私服_第8张图片

 

5、项目发布到私服(上传,需要账号和密码)

        5.1 配置账号密码,这样maven就可以访问nexus服务器,传输或下载文件了。在maven安装目录下的settings.xml文件中配置(如D:\maven\apache-maven-3.3.9\conf\settings.xml)。 servers节点下配置nexus网站的用户名密码

  

    

        releases

        admin

        admin123

    

    

      

        snapshots

         admin

        admin123

    

          5.2 配置POM项目中pom.xml文件,使项目发布到私服project节点下配置如下,其中仓库对应的id要和上面server中配置的id一致,url就是nexus网站中Repositoriesreleasessnapshots

​​​​​​​

    

        

            releases

            Internal Release

            http://localhost:8081/nexus/content/repositories/releases/

        

        

            snapshots

            Internal Snapshots

            http://localhost:8081/nexus/content/repositories/snapshots/

        

    

         注意当前项目version的配置,如果想发布到releases仓库,就要配置成“版本号-release”;如果发布到snapshots仓库,就配置成“版本号-snapshot”,不区分大小写

                             https://images2015.cnblogs.com/blog/705942/201707/705942-20170707152025722-1107131650.pnghttps://images2015.cnblogs.com/blog/705942/201707/705942-20170707152011940-1527088508.png

           执行maven的发布命令后就会发布到指定仓库:

           mvn install -Dmaven.test.skip=true

          可参考:https://blog.csdn.net/fn0723/article/details/81176765  

6、从私服获取jar包

       6.1 配置镜像,对指定路径进行拦截,默认maven访问中央,拦截后改为访问私服,在maven安装目录下的settings.xml文件中配置(如D:\maven\apache-maven-3.3.9\conf\settings.xml),在mirrors节点下配置   

 

      nexus

      *

      Human Readable Name for this Mirror.

      http://localhost:8081/nexus/content/groups/public/



 url配置成http://localhost:8081/nexus/content/groups/public/,这样获取jar包可以根据配置顺序优先级选择下载

                                           使用Nexus搭建私服_第9张图片

        6.2 settings.xml中配置profilemaven自定义配置,配置后如果使用需要激活,   profiles节点下配置,注意profile下的id要和上面镜像的id一致,respositoriespluginRepositories要使用镜像中配置的。   



        nexus

        

            

                 central

                http://repo1.maven.org/maven2/

                true

                true

            

        

        

                     

                central

                 http://repo1.maven.org/maven2/

                 true

                true

            

        

    

        6.3 settings.xml激活profilesettings节点下配置



    nexus

 

参考资料:https://www.cnblogs.com/moonfly/p/6094897.html

                  https://www.cnblogs.com/hujiapeng/p/7127213.html

                 https://blog.csdn.net/azhegps/article/details/71436637

                 https://blog.csdn.net/caiwenfeng_for_23/article/details/44565595

 

你可能感兴趣的:(使用Nexus搭建私服)