nexus搭建-附碰到的问题以及处理

一,下载工具

工具可以自行网络上搜索,注意,新版本的安装跟老版本的安装方式不一样,一下方法为老版本的安装

下载nexus-2.14.13-01-bundle,找到对应的文件夹D:\nexus-2.14.13-01-bundle\nexus-2.14.13-01\bin\jsw\windows-x86-64

命令说明:

console-nexus.bat  为控制台启动,这个我没用过。

install-nexus.bat  安装window服务,安装完之后在window的服务里面可以看到,是自动启动。

start-nexus.bat  启动nexus服务的,其他的从字面意思就能了解,不详细解释。

第一步:点击install-nexus.bat,安装完毕之后在window里面出现了这个服务。

第二步:点击start-nexus.bat,然后出现如下图

看到failed to start 说明报错,工具报错基本上都有日志可供查找原因,找到文件夹里面的wrapper.log,发现如下错误

说明java的jvm无法启动,应该是版本问题!

从网络上查找了一下对应的保本,报错52,对应的jdk1.8,而本机是1.7.所以需要升级jdk或者降低nexus版本。

下载了一个nexus-2.0.3,完美启动!

附上一个版本

nexus-2.0.3适合jdk1.7 ,我就是从这个地址下载的

https://download.csdn.net/download/javamrzhang/9907629

nexus-2.14.13-01-bundle适合1.8

改变之后,地址栏输入http://localhost:8081/nexus

登陆的时候发现用户名跟密码不对,不用着急,修改配置文件即可。

默认的登陆的用户名跟密码是admin admin123,如果你忘记了密码,找到这个目录D:\nexus-2.0.3\nexus-2.0.3-bundle\sonatype-work\nexus\conf

打开这个文件security.xml

<user>
      <id>admin</id>
      <firstName>Administrator</firstName>
      <password>f865b53623b121fd34ee5426c792e5c33af8c227</password>
      <status>active</status>
      <email>changeme@yourcompany.com</email>
    </user>

这个password就是admin123,如果你的密码不是这个,改成这个,重启服务才能生效!

二、搭建成功

成功登陆之后是这样的,是不是刚看见这个界面很慌,不要着急,理解起来不难

第一:首先看这个库都是干嘛的呢!

第一个type为group的,不说术语,只谈个人理解。

       type为group相当于组的概念,要把下面的几个仓库放在一起,就成了组!maven连接的时候,当仓库太多,那么只连接组就可以,不用每一个都配置了,挺方便的,需要把用的放在左边

第二:type为hosted

       host一般理解为主机,在这里面理解为宿主,啥意思,就是这个库我自己可以上传jar包,想上传什么上传什么。

第三:type为proxy

        name为central的type为proxy为代理,理解为通过nexus的代理配置,下载一些jar包。一般这个中央仓库配置的url都是比较大的maven仓库。如下图

第四:type为host的release跟snapshot这两个

这个就根据每家公司的实际情况了,比如你们公司里面有需要自己开发jar包,然后上传供项目组使用,就需要了解,否则不需要。

snapshot跟release,分别对应着交易快照以及稳定版本!其实特别好理解,snapshot就是在版本号都一致的情况下,会下载私服中最新的一版,解决了开发过程中不断打包的情况,而稳定版的不会!有点类似于配置管理库中的文档,开发的都有权限,也可以随便改,但是到了发布版本的时候,那么这个文档想要修改就得提交申请,同意了才能改!

在pom.xml文件中都会有这个版本

<modelVersion>4.0.0</modelVersion>
  <groupId>loan</groupId>
  <artifactId>loan</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>

如果加入了SNAPSHOT就会认为是快照版本的!

还有一个type为virtual这个,我没用上,不过写的是maven1,maven2的应该用不上。

整个nexus最重要的就是这块,其他的权限,用户,角色可以自行了解。

三、配置maven的setting.xml以及更新中央仓库索引

首先配置maven色setting.xml,加入用户认证

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

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

配置服务器认证,id为私服的repository的id!

剩下的为用户名以及密码

<mirror>  
        <id>nexus</id>  
        <name>internal nexus repository</name>  
        <url>http://192.168.1.118:8081/nexus/content/groups/public/</url>  
        <mirrorOf>*</mirrorOf>  
    </mirror> 

配置镜像,为私服的公共库地址,看,这块就是public的cantral的地址了!!

着重说一下这块

1.当mirrorof为*的时候,就不在需要repository,因为是先找镜像,后找配置库,也就是说,当mirrorof为*,下面的repository就不再需要了,因为所有仓库都要走这个镜像地址。

2.当<mirrorOf>*,!thirdparty</mirrorOf>  ,我的就这么配置的,因为我需要从第三方库里面下载jar包,局域网,速度快!

也就是说不包含镜像第三方库的时候,需要设置一下repository。

3.试一下,如果我按照如下配置

<mirror>  
        <id>central</id>  
        <name>Central Repository</name>  
        <url>https://repo.maven.apache.org/maven2</url>  
        <mirrorOf>*</mirrorOf>  
    </mirror>

下载全部是从这个镜像下载,因为通配符匹配的是*,也就是所有的仓库都要通过这个镜像下载

4. 如果我按照下面的配置

 <mirror>  
        <id>central</id>  
        <name>Central Repository</name>  
        <url>https://repo.maven.apache.org/maven2</url>  
        <mirrorOf>*,!thirdparty</mirrorOf>  
    </mirror>

看到区别了吗,也就是说这个加上!这个符号,也就是如果这个jar包在私服里面,这个库就不镜像了,直接从私服下载,如果不在私服,需要去这个镜像去下载。上面的!thirdparty,这个thirdparty就是下面的仓库id。

<profile>  
    <id>nexus-central</id>  
        <repositories>  
          <repository>  
            <id>thirdparty</id>  
            <name>thirdparty</name>  
            <url>http://192.168.1.118:8081/nexus/content/repositories/thirdparty/</url>  
            <releases>  
                 <enabled>true</enabled>       
            </releases>  
            <snapshots>  
                 <enabled>true</enabled>  
            </snapshots>  
          </repository>  
        </repositories>  
        <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://192.168.1.118:8081/nexus/content/repositories/thirdparty/</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
     </profile>  

还发现一件事情,我的central配置的是阿里云的http://maven.aliyun.com/nexus/content/repositories/central/,但是无法进行index的搜索,update index也不行,所以果断换成http://repo.maven.apache.org/maven2/,之后点击update index。在Tasks里面,点击refresh,多点几次,会发现正在下载,速度比较慢,我这下载了将近2个小时的索引文件。

update index为更新索引,是为了让搜索artifactid的时候,能够快速检索到

完成之后,debug as -> maven install一下,第一次大概需要5-10分钟吧!有点慢

可以看到Downloading from thirdparty: http://192.168.1.118:8081/nexus/content/repositories/thirdparty/org/apache/maven/plugins/maven-resources-plugin/2.4.3/maven-resources-plugin-2.4.3.pom

Downloading from nexus: http://192.168.1.118:8081/nexus/content/groups/public/org/apache/maven/plugins/maven-resources-plugin/2.4.3/maven-resources-plugin-2.4.3.pom

Downloaded from nexus: http://192.168.1.118:8081/nexus/content/groups/public/org/apache/maven/plugins/maven-resources-plugin/2.4.3/maven-resources-plugin-2.4.3.pom (6.0 kB at 170 kB/s)

下载jar包的时候会先从第三方库里面查找,当查找不到的时候,会去中央仓库配置的代理来下载到本地仓库。

顺便说一句

package命令完成打包会输出到target里面,但是不会发布到本地仓库跟私服
install命令完成打包会输出到target里面,同时发布到本地仓库
deploy命令完成打包会输出到target里面,同时发布到本地仓库跟私服

完毕之后,build success,打包成快照的war包

结束,以上所有全部参照大家在网络上的解决方案,自行理解写出!如果转载,请标明出处。欢迎大家指正,加深理解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值