maven私服搭建nexus3.0x版本 配合项目使用踩过的坑
1 maven私服吧,每个公司都用,也算是清理下自己的理解
本次搭建linux中 搭了一回oss2.0x版本的 其中有配置true 代理仓库可以自动从中央仓库下载
后来发现技术要用就弄新的版本 而是搭建oss3.0x版本
上干货
Apache Maven是一个项目管理的一个综合工具。
Maven提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,最强大的功能就是能够自动下载项目依赖库以及提供给开发人员一套完整标准的生命周期框架
Maven项目的结构和内容在一个pom.xml文件中声明。
搭建很简单下载官网的oss3.0即可.提供下载地址 进入此 https://blog.****.net/u010741112/article/details/103886347
下载后长传linux 运行tar -zxvf xxx.tar 即可
进入 nexus目录 cd nexus-3.20.1-01
进入bin 目录 启动nexus即可 ./nexus start
此时可能会出现报错 Detected execution as "root" user. This is NOT recommended!
解决方法 转置 https://blog.****.net/u010741112/article/details/103920117
要么是在bin目录下的nexus.rc文件添加:
vim nexus.rc 加入run_as_user=root
要么就是加入系统变量
vim /etc/profile 加入export RUN_AS_USER=root
然而啥用都没有,启动还是一样的报这个提示。后面查看了一下启动脚本,即vim nexus,里面有一句:run_as_root=true ,原来是此处直接给拦死了,故只要改成run_as_root=false 就可以。
其实还有一种方法,就是添加nexus用户,即:
useradd nexus
chown -R nexus:nexus /opt/nexus
然后su nexus 执行:./nexus start 就成功了。
如果需要改端口等配置 可以进入sonatype-work/nexus3/etc 此目前下有配置文件 nexus.properties 进入修改即可 默认端口是8081
访问页面 如果访问不到基本就是你防火墙没有开放端口 比如默认的8081 开放此端口即可
正式声明下 nexus3 就是新建一套用户名和新建一套仓库给大家用的
第一次登入admin 密码里面登入框有提示 在linux系统 某目录中去取 登入后 就让你修改密码 改好就行
登入后多个设置按钮
看页面 search 搜索jar 其实核心是elasticsearch
browse 存储 里面跟repository 一样的就jar包存放信息
点击设置进入
写博客上图片有点繁琐 不能向word一样直接粘贴 我简单点说明
进入后 就开始 进入blob stores 新建一个 store
然后进入security 新建一个用户关联2个最高权限
然后进入上面的仓库选项 新建仓库
仓库说明下
然后依次新建这3个仓库 新建hosted宿主仓库 时注意 需要允许重复提交 无论是正式的release 还是测试的snapshot 仓库
弄完上面 新建好4个仓库后就开始配置咋们的maven中setting配置了啦
<!-- 私服密码和位置 -->
<servers>
<server>
<id>写id 比如xx-xx-release</id>
<username>鉴权账号</username>
<password>鉴权密码</password>
</server>
。。。这里我配置了3个 2个宿主 1个组
</servers>
上面就是连接你私服的服务配置
<mirrors>
<!-- mirror是这样子的 就是只适配一个 如果连接不上就往下执行,但是这意味着如果你找不到mirror中的jar 就不再往下找了,所有我建议这里配group 组就行了-->
<mirror>
<id>aliyun-proxy</id>
<mirrorOf>*</mirrorOf>
<name>xxx</name>
<url>http://ip/repository/zj-group/</url>
</mirror>
</mirror>
</mirrors>
上面的mirror 的id 一定要和 上面server的 仓库id一致 我就配置一个mirror 就组仓库 因为组仓库可以访问到里面所有成员仓库
接下来就配置 能上传本地jar包的配置 看配置就这activeProfiles 一定不要掉了 ** (true)才能用
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>zj-releases</id>
<url>http://192.168.198.129:8081/repository/zj-releases/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<repository>
<id>zj-snapshots</id>
<url>http://192.168.198.129:8081/repository/zj-snapshots/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>zj-releases</id>
<url>http://192.168.198.129:8081/repository/zj-releases/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
<pluginRepository>
<id>zj-snapshots</id>
<url>http://192.168.198.129:8081/repository/zj-snapshots/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
此时就是可以配置你的maven项目中pom.xml的配置了
<distributionManagement> <repository> <id>zj-releases</id> <url>http://192.168.198.129:8081/repository/zj-releases/</url> </repository> <snapshotRepository> <id>zj-snapshots</id> <url>http://192.168.198.129:8081/repository/zj-snapshots/</url> </snapshotRepository> </distributionManagement>
就配置了本地打包的2个仓库 正式和测试仓库即可
因为maven项目会自动去mirror 配置的仓库中找 就组仓库 组仓库连接3个仓库 没问题
是不是很简单好用呢?