安装

1. 从 http://www.sonatype.org/nexus/ 下载最新的 Nexus 压缩包, 现在已经不提供war包的下载

2. 解压到服务器目录, 例如我是放到/opt/nexus 目录下, 如果不打算用root用户启动服务, chown到相应的用户

注: 如果有点强迫症, 不想chown整个目录, 至少要chown以下目录的权限:

/opt/nexus/sonatype-work/nexus
/opt/nexus/nexus-2.11.-/logs
/opt/nexus/nexus-2.11.-/tmp
/opt/nexus/nexus-2.11.-/bin/jsw

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..0_40/bin/java

4. 用默认管理员 admin/admin123登录, 修改密码

5. 点击左边的 Repositories, 在列出的仓库列表中, 将所有proxy类型的仓库Configuration->Download Remote Indexes 都设为True并保存, 下载Central Index. 因为网络问题, 默认的 https://repo1.maven.org/maven2/ 连不上, 可以通过 http://docs.codehaus.org/display/MAVENUSER/Mirrors+Repositories 查找可用的 mirror.

https://repository.jboss.org/maven2/ 这个版本号比较旧, 建议不要用

http://maven.antelink.com/content/repositories/central/ 和 http://mirrors.ibiblio.org/pub/mirrors/maven2 都不错

需要等待一段时间, 可以通过tail -f nexus/nexus-2.11.1/logs/wrapper.log 查看执行情况以及出错时的错误信息, 完成后就可以在Browse Index里看到目录了.

Nexus 的权限管理

http://www.open-open.com/lib/view/open1395239156009.html

在部署构件到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、创建用户

点击导航的“Users”链接,进入用户界面,然后单击“Add”按钮并选择“Nexus User”。填写相关内容。并授予用户角色信息。要同时授予Nexus Deployment Role 和刚才创建的Role

项目中引入私有的Repository

如果某个repository没有被加入到public, 是不能公开访问的, 这时候需要做一些设置才能让项目访问

1. 在pom.xml中加入对应的repository

    <repositories>
<repository>
<id>some-release</id>
<url>http://nexus.some.cn/content/repositories/releases/</url>
</repository>
<repository>
<id>some-snapshots</id>
<url>http://nexus.some.cn/content/repositories/snapshots/</url>
</repository>
</repositories>

2. 在Maven 的配置文件 settings.xml 中加入server
在<servers>...</servers>之间加入

<server>
<id>some-release</id>
<username>milton</username>
<password>passwd</password>
</server>
<server>
<id>some-snapshots</id>
<username>milton</username>
<password>passwd</password>
</server>

然后reimport项目就可以了.

Nexus的调度任务

Nexus提供了一系列可配置的调度任务来方便用户管理系统。用户可以设定这些任务运行的方式,例如每天、每周等。调度任务会在适当的时候在后台运行。

要建立一个调度任务,单击左边导航菜单中的“Scheduled Tasks”,然后再右边的界面上单击Add按钮,按照页面上的提示填写相关内容。

Nexus包含了以下几种类型的调度任务:

o    Download Indexs:为代理仓库下载远程索引。

o    Empty Trash:清空Nexus的回收站,一些操作实际是将文件移到了回收站中。

o    Evict Unused Proxied Items From Repository Caches:删除代理仓库中长期未被使用的构件缓存。

o    Expire Repository Cache:Nexus为代理仓库维护了远程仓库的信息以避免不必要的网络流量,该任务清空这些信息以强制Nexus去重新获取远程仓库的信息。

o    Publish Indexs:将仓库索引发布成可供m2eclipse和其他Nexus使用的格式。

o    Purge Nexus Timeline:删除Nexus的时间线文件,该文件用于建立系统的RSS源。

o    Rebuild Maven Metadata Files:基于仓库内容重新创建仓库元数据文件maven-metadata.xml,同时重新创建每个文件的校验和md5与sha1。

o    ReIndex Repositories:为仓库编纂索引。

o    Remove Snapshots From Repositories:以可配置的方式删除仓库的快照构件。

o    Synchronize Shadow Repository:同步虚拟仓库的内容(服务基于Maven1)。

Sonatype Nexus Maven仓库搭建和管理的更多相关文章

  1. Maven 私有库和本地库的安装与配置 Sonatype Nexus + Maven

    环境:CentOS 7.0 Final.JDK8.Sonatype Nexus.Maven 虚拟机模拟IP:192.168.16.167 备注:root权限用户操作 前提:已安装 JDK8 并配置好了 ...

  2. Linux 下搭建 Sonatype Nexus Maven 私服

    一.为什么需要搭建mave私服 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下 载构件无疑加大了仓库的 ...

  3. Nexus 私有仓库搭建与 Maven 集成

    Nexus 私有仓库搭建与 Maven 集成 |作者:RexFang |出处:http://www.cnblogs.com/rexfang/ |关于作者:Java 程序员一枚 |版权:本文版权归作者和 ...

  4. Maven仓库搭建--nexus私服

    Maven仓库搭建--nexus私服(Linux环境) Maven仓库简介 Maven仓库分为本地仓库.远程仓库.私服.本文重点介绍私服的使用方法. 下载安装包 网址:http://www.sonat ...

  5. 使用Sonatype Nexus搭建Maven私服后如何添加第三方JAR包?

    Sonatype Nexus简介 登录Nexus后,点击右侧的“Repositories”,显示当前Nexus所管理的Repository: 默认情况下Nexus为我们创建了以下主要的Reposito ...

  6. Maven使用笔记(五)Sonatype Nexus 搭建Maven 私服

    1. 为什么使用Nexus 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地, 而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载 ...

  7. Android业务组件化之Gradle和Sonatype Nexus搭建私有maven仓库

    前言: 公司的业务组件化推进的已经差不多三四个月的时间了,各个业务组件之间的解耦工作已经基本完成,各个业务组件以module的形式存在项目中,然后项目依赖本地的module,多少有点不太利于项目的并行 ...

  8. 使用Sonatype Nexus搭建Maven私服后,如何添加第三方JAR包

    使用Sonatype Nexus搭建Maven私服后如何添加第三方JAR包 步骤如下 1.打开nexus地址,进行登录 2.登录Nexus后,点击右侧的“Repositories”,显示当前Nexus ...

  9. Sonatype Nexus高级配置

    Sonatype Nexus的安装配置参见:CentOS系统中安装Nexus并导入已有的构件库.Nexus内置了Jetty容器,${NEXUS_HOME}/bin/jsw目录下包含了各个操作系统的启动 ...

随机推荐

  1. Android 中的Json解析工具fastjson 、序列化、反序列化

    Android中通常需要访问服务器,然而服务器返回的数据很多时候都是Json格式 1.fastjson简介 阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备 ...

  2. 数据持久化(一)--NSKeyedArchiver

    数据持久化:  将内存中的数据按某种格式存进磁盘 数据的种类: 1,结构化的数据 2, 字节流数据 结构化的数据        字节流 内存中结构化的数据   ->   磁盘,  叫: 归档 字 ...

  3. 【代码笔记】iOS-创建具有中划线的文字

    一, 效果图. 二,工程图. 三,代码. RootViewController.h RootViewController.m - (void)viewDidLoad { [super viewDidL ...

  4. 【原】Github系列之一:一起做仿天气类应用中的实时模糊效果LiveBlur

    从本文开始,我将专门开辟一个Github Code系列,开源自己写的一部分有意思而且实用的demo,共同学习.以前都发布在git OSChina上,后面有空会陆陆续续整理到Github上.OSChin ...

  5. iOS [[NSBundle mainBundle] pathForResource:@"" ofType:@""]无法获取到文件

    将一个文件导入到工程中后,用[[NSBundle mainBundle] pathForResource:@"" ofType:@""]来获取到该文件时,一直无 ...

  6. 直接双击启动tomcat中的startup.bat闪退原因及解决方法

    免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动. 原因是:在启动tomcat是,需要读取环境变量和配置信息,缺少了这些信息,就不能登记环境变量,导致了t ...

  7. request,session,application

    JSP 的3个内置对象request,session,application,其实都有一个作用域,这些对象内部有一个Map成员用于存放数据,比如session对象的setAttribute(key,v ...

  8. Jenkins用户配置(安装好jenkins后,怎么配置用户管理、权限管理)

    直奔主题 安装完成后,先开启用户配置 1. 系统管理-->配置权限 2.  启用安全,并选中"安全矩阵" 如上,搞定: 可以按用户去设置各项目的操作权限了: 轻松实现,jen ...

  9. 初学Mahout测试kmeans算法

    预备工作: 启动hadoop集群 准备数据 Synthetic_control.data数据集下载地址http://archive.ics.uci.edu/ml/databases/synthetic ...

  10. JBOSS目录结构详细说明

    一.下载与安装. 如何下载以及安装配置,请参考:Windows下JBOSS安装配置图文教程 二.现在主要了解一下JBOSS目录结构. 1. 主目录: E:\jboos\jboss-6.1.0.Fina ...