目录
背景
公司的repository仓库地址发生变更,jar包由以前的index模式变成了sonatype nexus管理…
-----------> >
sonatype nexus官方网站链接
官网文档quick-start-guides
1.搭建及部署
1.1.工具介绍
Sonatype nexus 是sonatype公司的一款制品管理工具,自身提供了OSS 开源免费版及PRO商业版。这这里笔者主要学习的为OSS(免费真香)。
1.2.工具下载
Nexus提供了二进制部署及镜像部署这两种方式,
二进制部署可通过https://help.sonatype.com/repomanager3/download/download-archives—repository-manager-3 下载,
镜像可通过https://hub.docker.com/r/sonatype/nexus3/tags/ 进行下载
1.3.部署服务器要求
CPU:最少为4,推荐为8+
内存:建议8G起步,规模大可考虑16G甚至是32G+
JAVA:JDK8
句柄数:至少为65536
磁盘空间:多多益善,官方建议500G
windows部署:参考文档
1.4二进制部署
1、 创建程序用户
useradd nexus
2、 修改句柄数
在 /etc/security/limits.conf 中添加
nexus - nofile 65536
3、 重启服务
reboot
4、 部署java
tar zvxf jdk-8u231-linux-x64.tar.gz
mv jdk-8u231 /opt/jdk
修改 /etc/profile
export JAVA_HOME=/opt/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
保存后执行 source /etc/profile
5、 部署nexus
cd /opt
wget http://download.sonatype.com/nexus/3/nexus-3.24.0-02-unix.tar.gz
tar zvxf nexus-3.24.0-02-unix.tar.gz
mv nexus-3.24.0-02 nexus
cd nexus/bin
在nexus 中修改第14行
# INSTALL4J_JAVA_HOME_OVERRIDE=
为java的部署路径否则有概率启动报错
在nexus.rc中修改为
run_as_user="nexus”
在/opt/nexus/etc/nexus-default.properties中可修改默认端口(可选)
修改文件权限
chown -R nexus:nexus /opt/nexus
chown -R nexus:nexus /opt/sonatype-work
切换用户,启动服务
su nexus
cd /opt/nexus/bin
./nexus start
1.5.docker 部署
docker run \
-p 8081:8081 \
--name nexus \
--ulimit nofile=65536:65536 \
--restart always \
sonatype/nexus3
即可完成部署
PS:一般情况下默认的登录信息为admin/admin123,不过有的时候会提示密码错误,这个时候就需要找一下/opt/sonatype-work/nexus3目录下的admin.password文件,使用该密码登陆后会提示用户设置admin密码。
1.6.仓库创建
登录nexus后,可以按照如下顺序点击,即可创建私服仓库了。
可以看到支持的存储种类是非常多的
仓库类型主要分为
-
proxy:代理公网上的仓库,比如maven的中央仓库,node的阿里镜像
-
hosted:本地仓库,一般是私有仓库,用于发布自己公司开发的制品
-
group:组,把几个仓库结合在一起,方便下载制品
1.7.创建proxy代理仓库
1、选择npm(proxy)
2、命名并输入代理地址,保存
3、本地配置npm config或npm install时指定为私服代理
4、安装成功后产看代理仓库,发现已经缓存下来刚刚安装的node依赖了
1.8.创建hosted仓库
1、以maven(hosted)为例
选择maven2(hosted)仓库
2、配置仓库名,仓库中可保存包的version规则,上传规则后保存。
其中vesion规则里面,release为发布版,snapshot为快照版,mixed为混合,建议release和snapshot分开保存,同时严格遵守版本规则。其中发布版release突出其稳定性,所以禁止redeploy,如果包变更,请升级版本号。
3、配置完毕的仓库(私服)
4、上传jar包
方案一:有项目源码时,通过maven命令,打包源码后上传,在构建时,可在settings.xml中配置Repository标签和server标签,然后通过mvn deploy命令上传到对应私服仓库。
方案二:通过调用接口上传
POST /service/rest/v1/components
curl -v -u admin:admin123 -X POST ‘http://192.168.1.62:8081/repository/example_maven_release/’ -F maven2.groupId=com.google.guava -F maven2.artifactId=guava -F maven2.version=24.0-jre -F maven2.asset1=@guava-24.0-jre.jar -F maven2.asset1.extension=jar -F maven2.asset2=@guava-24.0-jre-sources.jar -F maven2.asset2.classifier=sources -F maven2.asset2.extension=jar
方案三:在只有j制品时,通过maven命令直接上传
mvn deploy:deploy-file -Dfile=guava-24.0-jre.jar -DpomFile=guava-24.0-jre.pom -Dpackaging=jar -DrepositoryId=bxbank_privrepository_snapshots -Durl=http://192.168.1.62:8081/repository/example_maven_release/
1.9.创建group
1、创建以npm(group)为例
npm因自身有多个代理可选择,所以可以选择group的模式来实现配置后可从多个npm代理中下载依赖的目的
创建npm group
2、配置组名及npm组中需要的代理及私服
持续更新。。。