博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
window下Nexus私服高级搭建
阅读量:6225 次
发布时间:2019-06-21

本文共 6166 字,大约阅读时间需要 20 分钟。

环境是:nexus-2.1.1、maven-3.0.4、jdk-1.6.0_32 

一、用admin用户登陆nexus 
nexus的下载和安装都很简单

1.下载   http://www.sonatype.org/nexus/go  这里我们下载window 环境下的nexus文件  http://www.sonatype.org/downloads/nexus-2.1.1-bundle.zip    2.安装和启动服务  下载完成后,在盘符上新建nexus 文件夹,将  nexus-2.1.1-bundle.zip解压到nexus目录中。    3、配置环境变量  NEXUS_HOME=E:\nexus\nexus-2.1.1   PATH 添加 %NEXUS_HOME%\bin\jsw\windows-x86-32    4、执行nexus 服务安装       install-nexus.bat 服务安装成功后        console-nexus.bat 在控制台nexus服务项目     start-nexus.bat 启动nexus服务    5、如果启动报错(错误如下)  wrapper  | The nexus service was launched, but failed to start.     关闭window,重新启动    6、window 启动后,再次找到nexus服务,启动或者停止,看服务是否正常。  7、地址栏上输入  http://localhost:8081/nexus   如果到此处,都一切正常说明,你成功了!  默认用户名admin,密码为admin123

nexus的配置需要用admin角色完成,默认的密码是admin123,进入nexus首页之后,点击右上角,进行登录 

 

然后就可以在左边的菜单中进行配置了 

二、为nexus配置代理服务器 
由于这台机器需要通过代理才能访问外网,所以首先要配置代理服务器,在Administration-->Server中进行配置 
配置之后,nexus才能连上central repository,如果私服所在机器可以直接上外网,则可以省略这一步 
三、配置repository 
在Views/Repositories-->Repositories里进行配置 
nexus里可以配置3种类型的仓库,分别是proxy、hosted、group 
proxy是远程仓库的代理。比如说在nexus中配置了一个central repository的proxy,当用户向这个proxy请求一个artifact,这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用 
hosted是宿主仓库,用户可以把自己的一些构件,deploy到hosted中,也可以手工上传构件到hosted里。比如说oracle的驱动程序,ojdbc6.jar,在central repository是获取不到的,就需要手工上传到hosted里 
group是仓库组,在maven里没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom中配置多个地址,只要统一配置group的地址就可以了 
nexus装好之后,已经初始化定义了一些repository,我们熟悉之后,就可以自行删除、新增、编辑 
右边那个Repository Path可以点击进去,看到仓库中artifact列表。不过要注意浏览器缓存。我今天就发现,明明构件已经更新了,在浏览器里却看不到,还以为是BUG,其实是被浏览器缓存了 
四、配置Central Repository的proxy 
最关键的一个配置,可能就是Central Repository的proxy配置,因为大部分的构件,都是要通过这个proxy得到的 
在安装完nexus之后,这个proxy是预置的,需要做的就是把Download Remote Indexes改为true,这样nexus才会从central repository下载索引,才能在nexus中使用artifact search的功能 
网络上有一些其他公开的maven仓库,可以用同样的办法,在nexus中设置proxy,但是并不是所有maven仓库,都提供了nexus index,这种情况下,就无法建立索引了 
五、配置hosted repository 
一般会配置3个hosted repository,分别是3rd party、Snapshots、Releases,分别用来保存第三方jar(典型的比如ojdbc6.jar),项目组内部的快照、项目组内部的发布版 
这里并没有什么特别的配置,只是Deployment Policy这个选项,一般Snapshots会配置成允许,而Releases和3rd party会设置为禁止 
六、配置group repository 
前面说过,group其实是一个虚拟的仓库,通过对实体仓库(proxy、hosted)进行聚合,对外暴露一个统一的地址 
这里要注意的是,放到左边的仓库,才是会被聚合的仓库。我昨天一直搞错了,把仓库都放到右边,结果group什么都没有聚合到,是一个空的仓库。。。 
七、配置用户密码 
在Security-->Users中配置,在deployment用户上点击右键,选择Set Password,然后设置一个密码,做这个操作是为了后面提交做准备 
八、在用户机器上配置settings.xml 
经过前面的7个步骤,nexus就配置好了,接下来需要在每个开发人员的开发机器上进行配置了 
配置文件在%USER_HOME%/.m2/settings.xml

nexus-snapshots
deployment
deployment
nexus
internal nexus repository
http://10.78.68.122:9090/nexus-2.1.1/content/groups/public/
central

这里只配置了2个元素<mirrors>和<servers> 

首先这里配置了一个id为nexus的镜像仓库,地址是前面配置的public group的URL,然后镜像目标是central 
maven里的超级pom,里面配置了这样一段:

central
Central Repository
http://repo.maven.apache.org/maven2
default
false
central
Central Repository
http://repo.maven.apache.org/maven2
default
false
never

因此,当本地的maven项目,找不到需要的构件(包括jar包和插件)的时候,默认会到central里获取 

所以我们刚刚配置的镜像仓库,id也是central,这样本地maven项目对central repository的请求,就会转到镜像仓库上,也就是我们设置的nexus私服上 
由于我们在项目的pom里,不会再配置其他的<repositories>和<pluginRepositories>元素,所以只要配置一个central的mirror,就足以阻止所有的外网访问。如果pom中还配置了其他的外网仓库,比如jboss repository等,可以把<mirrorOf>改为* 
至于<servers>元素,是因为我们把项目内部的构件上传到nexus的仓库中时,nexus会进行权限控制,所以这里需要设置权限相关的信息。注意这里的<id>nexus-snapshots</id>,和后面maven工程里的pom设置是一致的 
由于我们这里已经屏蔽了对外网仓库的请求,所以就不需要配置代理服务器了,如果需要配置代理服务器,可以用<proxies>元素 
九、配置maven项目的pom文件 
下面是简化后的pom文件:

4.0.0
com.huawei.inoc.wfm.task
task-sla
0.0.1-SNAPSHOT
task-sla
nexus-snapshots
nexus distribution snapshot repository
http://10.78.68.122:9090/nexus-2.1.1/content/repositories/snapshots/

这里配置了<distributionManagement>元素,其中的<id>nexus-snapshots</id>,与前面说的settings.xml中的<servers>元素中的配置必须一致 

配置这个的目的,是当执行maven deploy时,才知道要将生成的构件部署到哪个远程仓库上,注意这里的URL填的就不是public group的地址: 
http://10.78.68.122:9090/nexus-2.1.1/content/groups/public/ 
而是snapshots的地址: 
http://10.78.68.122:9090/nexus-2.1.1/content/repositories/snapshots/ 
但是在nexus中,snapshots也是聚合到public group里的,所以开发人员A提交到snapshots的构件,开发人员B也可以从public group里获取到 
十、eclipse中的设置 
经过前面的配置,已经可以通过命令行进行maven操作了。不过实际开发中,一般都是使用eclipse的m2e插件,所以还需要对eclipse进行一些额外的配置 
在Preferences-->Maven-->User Settings中,点击Update Settings,加载刚才我们对settings.xml的更改 
然后在Maven Repositories视图里,可以看到仓库的情况 
可以看到,从超级pom继承来的central被置灰了,不可用,后面的mirrored by nexus表示对该仓库的所有请求,都会转到镜像nexus中 
十一、nexus的目录结构 
nexus会安装在%USER_HOME%/sonatype-work/nexus下,有以下目录 
其中的storage目录,就是构件实际存放的地址了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

nexus踩到的坑-jdk1.8

C:\WINDOWS\system32>nexus restartwrapper  | The nexus service was not running.wrapper  | Starting the nexus service...wrapper  | The nexus service was launched, but failed to start.请按任意键继续. . .
日志(wrapper.log)wrapper  | Unable to execute Java command.  系统找不到指定的文件。 (0x2)wrapper  |     "java" -Djava.io.tmpdir=./tmp -Djava.net.preferIPv4Stack=true wrapper  | Critical error: wait for JVM process failedwrapper  | The nexus service was launched, but failed to start.

解决:

nexus-2.10.0-02/bin/jsw/conf/wrapper.conf

wrapper.java.command=C:\Program Files\Java\jdk1.7.0_67\jre\bin\java.exe

 

转载于:https://www.cnblogs.com/zhaoyan001/p/8644862.html

你可能感兴趣的文章
windows 7 使用注册表创建影子账户和隐藏账户
查看>>
一个有用的python装饰器 -- 为执行程序加锁
查看>>
linux shell
查看>>
xfs文件系统优化
查看>>
eclipse.ini参数的含义和设置
查看>>
VirtualBox中常用的网络设置
查看>>
用 GetEnvironmentVariable 获取常用系统环境变量
查看>>
手把手安装ZABBIX2.2(CentOS6.5+Zabbix2.2.2)
查看>>
推送通知(本地推送+远程推送)详解
查看>>
ifconfig
查看>>
电子商务风险防控
查看>>
Android列表展示和手指滑动分页
查看>>
我的友情链接
查看>>
final 关键字修饰类、属性、方法的使用
查看>>
字符数组"student a am i"--》"i am a student"
查看>>
更改zabbix数据库mandatory
查看>>
使用Cocos Studio UI编辑器并在cocos2dx中加载
查看>>
对MYSQL进行压力测试
查看>>
运维自动化之 Cobbler 系统安装使用详解
查看>>
yii2 日志功能使用记录
查看>>