Nexus 学习
1. 安装及启动
- 下载地址
-
启动
./nexus start
-
配置文件
nexus 有两个目录
- nexus-3.21.1-01 安装
- sonatype-work 数据文件
具体每个目录下的各个配置文件的作用,请参考官方文档说明
在 nexus.vmoptions 文件中修改本地启动的JVM参数,在 nexus-default.properties 文件中修改端口号,默认端口8081。
2. 仓库
2.1 仓库类型
仓库类型 | 解释 |
---|---|
proxy | 代理远程中央 maven仓库,当项目构建访问中央库的时候,先通过代理去远程中央仓库下载依赖包到nexus 仓库,然后再从nexus 仓库下载到本地。私服我们部署在内网服务器,只要其中一个人从远程中央库下来了,以后相同的依赖包就都是从nexus 私服上进行下载,加快下载速度,不怕远程中央仓库出现问题 |
hosted | 本地仓库,用于存放内部发布的的项目,和外部没有连接关系,是由公司内部用户发布上来的项目 |
group | 仓库组,用来合并多个hosted/proxy仓库,当项目需要引用多个repository资源时,只需要将这些资源放到一个group中,引用这一个group即可 |
2.2 新建仓库
新建仓库,选择 maven2(hosted),建立一个私有仓库。
版本策略:
- Release 发行版,上线的时候时候,同一个版本的发布版本只允许deploy一次。
- Snapshot 快照版,开发阶段使用,可以重复deploy,maven更新的时候可以强制拉取到最新的
部署策略:
- Read-only: 只读,不允许部署
- Disable redeploy:只能部署一次,之后任何再次部署的尝试都将导致错误
- All redeploy:可以部署到此仓库,并在后续部署中覆盖相同的jar
3. 权限
主要是这三个方面:
、
3.1 Privileges
- 类型:一般经常用的是 Repository admin 和 Repository view, admin一般是管理人员拥有,对整个仓库的管理和配置,view是普通开发人员,负责对仓库中的内容管理
- 动作:add,browse,delete,edit,read 和 *,一般不赋给普通开发人员delete权限。
3.2 Roles
nexus 默认只有两种角色:nx-anonymous 和 nx-admin,前者只有浏览的权限,后者为管理员权限,所以我们需要为开发人员创建个角色,并且只添加自定义仓库的使用权限,删除操作除外。
新建develop角色:
3.3 Users
跟Roles类似,默认的用户只有两种:admin 和 anonymous,同样需要创建属于开发者的用户对象。点击 Create local user,填入用户名,密码等必填信息之后,关联上步的创建的角色。
新建develop用户,关联刚创建的develop角色
4. 本地settings.xml 配置
-
配置 server
仓库的下载和部署一般是在项目的pom.xml文件中配置,仓库的权限认证需要在这里配置
<server> <!--要访问的私服仓库id,该id与pom文件中distributionManagement中repository元素的id相匹配--> <id>einherjar-release</id> <username>develop</username> <password>123456</password> </server>
-
配置 mirror
配置私服的镜像,当项目构建访问中央库的时候,先通过代理去远程中央仓库下载依赖包到Nexus 仓库,然后再从Nexus仓库下载到本地
<mirror> <id>einherjar-public</id> <!-- central,表示该配置为中央仓库的镜像 --> <mirrorOf>central</mirrorOf> <name>local nexus</name> <url></url> </mirror>
-
配置 profile
注意: 一般不在setting.xml中配置,在项目的pom中配置, 这样的话,新的开发人员不需要再更改自己的setting.xml 就可以从远程仓库下载jar包。
<profiles> <profile> <!--profile的唯一标识--> <id>test</id> <!--远程仓库列表--> <repositories/> <!--插件仓库列表--> <pluginRepositories/> </profile> </profiles> <activeProfiles> <activeProfile>test</activeProfile> </activeProfiles>
5. 项目 pom.xml 文件配置
-
用来从指定的私服仓库下载内部jar包
<repositories> <repository> <id>einherjar-snapshot</id> <url></url> </repository> <repository> <id>einherjar-release</id> <url></url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
-
将本地项目jar包部署到私服
<distributionManagement> <repository> <id>einherjar-release</id> <name>LocalReleaseRepository</name> <url></url> </repository> <snapshotRepository> <id>einherjar-snapshot</id> <name>LocalSnapshotRepository</name> <url</url> </snapshotRepository> </distributionManagement>
6. 测试
- 本地 settings.xml 文件配置
- 新建两个工程,hello-world 和 nexus-tour
hello-world pom 文件配置
可以看到已经成功部署到私服了
nexus-tour pom文件配置
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。