1. 从 下载最新的 Nexus 压缩包, 现在已经不提供war包的下载
2. 解压到服务器目录, 例如我是放到/opt/nexus 目录下, 如果不打算用root用户启动服务, chown到相应的用户
3. 更改Nexus的运行JDK
原服务器上的JDK是1.6, 运行会出 Unsupported major.minor version 51.0 错误, 需要更改运行Nexus的JDK 为 1.7
By default Nexus will pick up whatever java executable is on the path. You can change this by editing $NEXUS_HOME/bin/jsw/conf/wrapper.conf and setting the "wrapper.java.command" property to the absolute path of your java executable.
所以, 要修改的是 $NEXUS_HOME/bin/jsw/conf/wrapper.conf, 我直接改成jdk1.8了
# Set the JVM executable
# (modify this to absolute path if you need a Java that is not on the OS path)
wrapper.java.command=/opt/jdk1.8.0_40/bin/java
4. 用默认管理员 admin/admin123登录, 修改密码
5. 点击左边的 Repositories, 在列出的仓库列表中, 将所有proxy类型的仓库Configuration->Download Remote Indexes 都设为True并保存, 下载Central Index. 因为网络问题, 默认的 https://repo1.maven.org/maven2/ 连不上, 可以通过 +Repositories 查找可用的 mirror.
https://repository.jboss.org/maven2/ 这个版本号比较旧, 建议不要用
和 都不错
需要等待一段时间, 可以通过tail -f nexus/nexus-2.11.1/logs/wrapper.log 查看执行情况以及出错时的错误信息, 完成后就可以在Browse Index里看到目录了.
Nexus 的权限管理
在部署构件到Nexus上的时候我们注意到配置一个验证信息,那么,Nexus的权限管理是怎么样的呢?我们又怎么合理地分配权限呢?
Nexus是基于权限做访问控制的,服务器的每一个资源都有对应的权限来控制,因此用户执行特定的操作时就必须拥有必要的权限。管理员必须以角色的方式将权限赋予Nexus用户。用户可以被赋予一个或者多个角色,角色可以包含一个或多个权限,角色还可以包含一个或者多个其他角色。
Nexus上预定义了三个用户,用admin登录后,单击页面左边的User链接
admin:该用户拥有Nexus的全部权限,默认密码为admin123。
deployment:该用户能够访问Nexus,浏览仓库内容、搜索、上传部署构件,但是不能对Nexus进行任何配置,默认密码为deployment123。
anonymous:该用户对应了所有未登录的匿名用户,它们可以浏览仓库并进行搜索。
Nexus预定义了一些常用且重要的角色,如:
UI:Basic UI Privileges:包含了访问Nexus界面必须的最基本的权限。
UI:Repository Browser:包含了浏览仓库页面所需要的权限。
UI:Search:包含了访问快速搜索栏及搜索界面所需要的权限。
Repo:All Repositories (Read):给予用户读取所有仓库内容的权限。没有仓库的读权限用户将无法再仓库页面看到实际的仓库内容,也无法使用Maven从仓库下载构件。
Repo:All Repositories (Full Control):给予用户完全控制所有仓库内容的权限。用户不仅可以浏览、下载构件,还可以部署构件及删除仓库内容。
为项目分配独立的仓库
如果我们将所有项目的快照版本和发布版本构件都部署到同样的仓库,就有潜在的冲突以及安全问题。我们不想让项目A的部署影响到项目B,也不想让项目 B的部署影响到项目A,那么解决方法就是为每个项目分配独立的仓库,并且只将仓库的部署、修改和删除权限赋予该项目的成员,其他用户只能拥有读取、下载和 搜索该仓库内容的权限。步骤如下:
1、创建项目库
单击Nexus界面左边导航栏中的Repositories链接,在右边的面板中选择Add,在下拉菜单中选择Hosted Repository。接着在下面的面板中填写仓库的ID和名称,选择Repository Policy为Release,选择Deployment Policy为Allow Redeploy,其他的选项默认。点击Save按钮。
2、创建权限
有了仓库以后,就需要创建基于仓库的增、删、查、改权限了。Nexus中增删查改的权限是基于Repository Target建立的。单击Nexus界面导航栏中的Repository Targets链接,可以看到Repository Target的相关信息。
点击页面导航栏中“Security”->“Privileges”->单击Add按钮,选择“Repository Target Privilege”。如图4填写相关内容, Repository选取刚创建的repository, Repository Target选取All(Maven2)
点击“Save”后就能在列表中看到相应的增、删、改、读, View权限。
3、创建角色
如果我们创建一个包含上述权限的角色的话就能更方便管理了。创建角色步骤如下:
从导航的“Roles”链接进入角色界面,单击上方的“Add按钮”选择“Nexus Role”。填写相关内容,并将fooReleases项目分配给角色。填写相关信息, 选取刚才创建的5个Privileges
4、创建用户