安装

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. XListView

    第一步:到官网下载第三方包,拷贝到自己的项目中 https://github.com/Maxwin-z/XListView-Android 第二步:xml文件 <me.maxwin.view.X ...

  2. 【原】iOS设计模式之:建造者模式Builder Pattern,用于改进初始化参数

    本文主要讨论一下iOS中的Builder Pattern.与网上很多版本不同,本文不去长篇大论地解释建造者模式的概念,那些东西太虚了.设计模式这种东西是为了解决实际问题的,不能为了设计模式而设计模式, ...

  3. C阶段【02】 - 分支结构

    知识重点: BOOL布尔类型 关系运算符 逻辑运算符 if语句 枚举类型 switch语句 一.BOOL布尔类型 用来存储“真”或者“假”,变了只有YES和NO两个值.YES(1)表示表达式结果为真, ...

  4. javaScript基础语法(下)

    4.逻辑控制语句 4.1条件结构 条件结构分为if结构和switch结构. 通常在写代码时,您总是需要为不同的决定来执行不同的动作.您可以在代码中使用条件语句来完成该任务. 在 JavaScript ...

  5. go的环境变量设置

    GOROOT go的安装路劲 如:D:\Program Files\Go GOPATH go的工作路径 GOPATH可以设置多个.存放包文件.比如你引入 "xxx"包.那么go会去 ...

  6. [转]从JVM角度看线程安全与垃圾收集

    线程安全 Java内存模型中,程序(进程)拥有一块内存空间,可以被所有的线程共享,即MainMemory(主内存):而每个线程又有一块独立的内存空间,即WorkingMemory(工作内存).普通情况 ...

  7. 《AngularJS高级程序设计》学习笔记

      一.AngularJS应用剖析 AngularJS存在一些最主要的构件,如模型,视图和控制器.但AngularJS中也有许多其他可供灵活使用的部件,包括模块,指令,过滤器,工厂和服务. 一 . 1 ...

  8. 微信网站设置右上角发送、分享的内容——.net版本

    一.首先了解本文要解决的问题: 公司前一段开发了移动网站,老板喜欢通过微信看,然后把看到的东西通过右上角的按钮分享出来,但老板发现分享出来的东西,没有指定的图片,没有描述:所以我就得老老实实干活了.. ...

  9. Linux服务器下nginx的安全配置

    1.一些常识 linux下,要读取一个文件,首先需要具有对文件所在文件夹的执行权限,然后需要对文件的读取权限. php文件的执行不需要文件的执行权限,只需要nginx和php-fpm运行账户的读取权限 ...

  10. Windows7 系统 CMD命令行,点阵字体不能改变大小以及中文乱码的问题

    之前装了oracle 11g后,发现开机速度竟然奇葩的达到了3分钟.经过旁边大神指点,说是因为oracle某个(具体不清楚)服务,在断网的时候会不断的ping网络,导致速度变慢.然后就关服务呗,然后一 ...