版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hellow__world/article/details/71855883
Nexus下载与启动:
下载地址为Nexus官网:http://www.sonatype.org/nexus/
我们选择OSS免费版,然后选择操作系统,3.0版本的已经默认为下载源码包(bundle版本)而不是war文件。其中源码包中包含了jetty容器,也就是说不需要额外的web容器就能直接启动。而war版本的Nexus需要放入额外的web容器例如tomcat中的webapps目录下才能启动。
下载了3.x - OS X的源码包之后,解压文件得到两个目录:
其中第一个目录是运行Nexus时必须的,同一个版本的Nexus该目录中的内容是一样的, 而第二个目录是Nexus在运行的时候动态创建的,里面包含了我们对仓库,角色,权限,成员的一些配置信息以及所有我们下载的构件。所以当我们备份Nexus的时候,我们需要备份的是sonatype-work目录。
接着我们启动nexus,在命令行cd到nexus-3.3.1-01目录下的bin目录下,然后输入./nexus start启动nexus,这里可能会出现一个问题:nexus配置了jetty容器默认占用8081端口,我们可以在nexus-3.3.1-01目录的etc目录下找到nexus-default.properties文件,然后修改application-port为我们想要的端口的。
我们输入./nexus 可以看到他提示我们可以使用的几个指令:
在linux系统上启动服务的时候出现的问题可以参照:[](http://blog.csdn.net/cuker919/article/details/12052565)http://blog.csdn.net/cuker919/article/details/12052565
启动服务之后,我们就可以在浏览器中访问:http://localhost:8082/ (这里我将端口号修改为了8082,默认8081)
Nexus的默认管理员用户名和密码为admin/admin123。
Nexus的仓库与仓库组:
Nexus的主要的仓库类型:
我们点击导航栏中的Repositories链接,看到如下图界面:
Nexus内置的仓库就已经包含了主要的仓库类型:
我们在Maven中配置的访问Nexus的仓库一般是maven-public仓库组,我们向仓库组我们下载或者上传构件的请求,仓库组中没有实际的内容,他会转向其包含的宿主仓库或者代理仓库获得实际构件的内容。
我们也可以通过简单的配置来创建一个仓库或者仓库组。当我们配置代理仓库的时候有几个参数需要注意:
配置Maven从Nexus下载构件:
我们可以在项目的POM中配置仓库和插件仓库,当然如果我们想要所有的Maven项目都使用私服,可以在settings.xml中配置,但是settings.xml并不直接支持配置repositories和pluginRepositories,但是Maven提供了profiles下的profile可以让我们定义一系列的配置信息,然后指定其激活条件,能够定义在settings.xml中的信息有<repositories>、<pluginRepositories>和<properties>。定义在<properties>里面的键值对可以在pom.xml中使用,这里我们配置远程仓库的地址和插件仓库。
<profiles> <profile> <id>jdk8</id> <activation> <activebydefault>true</activebydefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerversion>1.8</maven.compiler.compilerversion> </properties> </profile> <profile> <id>nexusRep</id> <repositories> <repository> <id>nexus</id> <name>Nexus Repository</name> <url>http://192.168.1.88:8081/nexus/content/groups/public/</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexus</id> <name>Nexus pluginRepository</name> <url>http://192.168.1.88:8081/nexus/content/groups/public/</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </pluginRepository> </pluginRepositories> </profile></profiles>
但是Maven除了从Nexus上下载构件之外,还会时不时从中央仓库下载构件,然而这应该是Nexus的工作,所以我们需要配置一个镜像,用
<mirrorof>*</mirrorof>将Maven任何构件下载的请求都转发到私服中。
<mirrors> <mirror> <id>nexus</id> <name>A Local Nexus Server</name> <url>http://192.168.1.121:8081/nexus/content/groups/public/</url> <mirrorof>*</mirrorof> </mirror></mirrors>
这里就有一个问题,在这里配置了镜像,那在<profiles>里配置的远程仓库不是没有用了吗?
当Maven需要下载发布版或者快照版构件的时候,他会首先检查我们配置的远程仓库中的<releases>和<snapshots>元素,看该类型的构件是否可以下载,如果可以下载,就转到镜像地址去下载。所以我们配置的远程仓库中的<url>失效了,有效的是<releases>和<snapshots>元素。
使用Maven部署构件到Nexus:
在项目正常开发中,快照版本的构件可以部署到Nexus中策略为Snapshot的例如:maven-snapshots宿主仓库中,发布版本可以部署到Nexus中策略为Release的例如:maven-releases宿主仓库中,项目的POM文件配置如下:
<distributionManagement> <repository> <id>Nexus-releases</id> <name>Nexus-releases-repositories</name> <url>http://192.168.1.121:8081/nexus/repositories/releases/</url> </repository> <snapshotRepository> <id>Nexus-snapshots</id> <name>Nexus-snapshots-repositories</name> <url>http://192.168.1.121:8081/nexus/repositories/snapshots/</url> </snapshotRepository></distributionManagement>
但是Nexus仓库对于匿名用户是只读的,所以为了能够部署构件,还需要在settings.xml文件中配置认证信息。
<servers> <server> <id>nexus</id> <username>admin</username> <password>*****</password> </server></servers>
当然对于一些由于许可证因素等无法发布到公共仓库的构件,我们只能自己下载然后通过Nexus的界面手动上传到私服中。
到此为止,Nexus私服的搭建与配置基本完毕,下面是关于权限管理的问题。
出于安全性考虑、需要对Nexus仓库进行权限管理、比如只有管理员才能配置Nexus、某个项目组有特定的仓库、等等。
Nexus的访问控制模型:
Nexus是基于权限(Privilege)做访问控制的。一个用户可以被赋予一个或者多个角色、一个角色可以包含一个或者多个权限、还可以包含一个或者多个角色。用户必须拥有相应的角色继而拥有相应权限、才能做相应操作,但是有一点要注意这里的权限都是基于仓库的,即对仓库的增删改查权限。
在2.x版本, Nexus预定义了一些常用且重要的角色,如:
在3.x版本中, Nexus只预定义了两个重要的角色:
Nexus为项目分配独立的仓库:
当我们有多个项目时,为了避免各个项目上传到同一仓库发生冲突干扰、可以为每个项目创建独立的仓库、每个项目所拥有的仓库只有其项目组成员才能对此仓库进行部署、修改和删除权限、其他用户只能读取、下载、和搜索该仓库内容。
我们以2.x版本举例,步骤如下:
Nexus调度任务:
Nexus提供了一系列可配置的调度任务来方便用户管理系统。用户可以设定这些任务运行的方式,例如每天、每周等。调度任务会在适当的时候在后台运行。
要建立一个调度任务,单击左边导航菜单中的“Scheduled Tasks”,然后再右边的界面上单击Add按钮,按照页面上的提示填写相关内容。
Nexus包含了以下几种类型的调度任务:
Original url: Access
Created at: 2019-03-21 16:09:21
Category: default
Tags: none
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
最新评论