iMac(OS X)搭建私有maven仓库,提供Nexus Responsitory镜像

背景

最近项目陆续都切换到了Android Studio,同时切换到gradl编译,但是经常由于墙的问题使用的新的插件更新的速度非常慢。因此决定在自己的Mac机器上部署一套私有仓库代理,即用于自己的开发,也可以提供给团队或者自己其余的机器使用。

安装步骤

前置条件:

  1. 已经安装有jdk;如果没有安装jdk可以点击查看Mac下怎么安装JDK

安装Sonatype Nexus

Sonatype Nexus是现在比较流行和成熟的私有仓库搭建工具,透过nexus可以很轻松的搭建私有仓库。

  1. 下载nexus 将工作目录切换到下载目录,然后使用命令行下载nexus最新版的安装包 wget http://www.sonatype.org/downloads/nexus-latest-bundle.tar.gz 目前最新版为nexus-2.12.0-01,下载完以后,目录会存在名为nexus-2.12.0-01-bundle.tar.gz的文件。
  • 解压缩 在目录下运行解压缩命令: tar zxvf nexus-2.12.0-01-bundle.tar.gz 解压缩以后目录出现名为nexus-2.12.0-01文件夹
  • 拷贝到目标位置 将解压后的nexus-2.12.0-01文件夹拷贝到你的用户库目录。通常为/usr/loal/,个人一般用自己专门的位置。 mv nexus-2.12.0-01 ~/zixie/Library/

至此nexus已经安装OK了,等修改好相关的启动配置,就可以使用了。

配置修改

  1. 在Nexus的安装目录找到/bin/nexus
    • 使用文本编辑器(如sublime)打开nexus
    • 修改Nexus home

    设置Nexus的根目录,就是上面部署nexus的为位置,例如: NEXUS_HOME="/Users/zixie/zixie/Library/nexus-2.12.0-01" - 设置平台类型和启动方式 RUN_AS_USER=root PLATFORM=macosx-universal-64 PLATFORM_DIR="${NEXUS_HOME}/bin/jsw/${PLATFORM}"

  2. 设置wrapper相关配置 WRAPPER_CMD="${PLATFORM_DIR}/wrapper" WRAPPER_CONF="${PLATFORM_DIR}/../conf/wrapper.conf" PIDDIR="${NEXUS_HOME}"

启动服务

至此所有安装以及配置相关的内容都已经OK,接下来需要启动Nexus服务。

  1. 切换到root。 Nexus启动需要使用root用户,在命令行输入: sudo su 输入密码以后即可切换到root用户。 - 启动服务 在root用户下,运行安装目录下/bin下面的Nexus命令,即可启动Nexus: /Users/zixie/zixie/Library/nexus-2.12.0-01/bin/nexus start 当然也可以将bin目录配置到环境变量,后续就可以直接敲命令而不用带上路径了,这个看个人需求。

验证和配置Nexus Respository

验证

Nexus安装完成以后,成功启动服务以后,打开浏览器,输入:http://localhost:8081/nexus/即可打开配置管理段的页面。则说明安装成功了。

配置Respository

点击界面右上角 “Log in”,然后输入账号密码(默认用户名:admin密码:admin123)即可登入管理段。

进入界面以后,点击左侧Repositories,右侧会出现很多库的配置,由于个人只是用来代理第三方库,因此把除了Central以外的其余库都删了。然后根据个人需求配置对应的repository。

点击add,选择 proxy Repository,然后添加相关配置。下图为个人添加oschina的镜像的相关配置:

配置完所有配置以后点击save,即可把oschina添加到代理仓库。

开启自动下载

选择一个Repositories,然后点击下面的Configuration,然后将Remote Repository Access里面的Download Remote Indexes设置为true,Nexus就会自动从中央仓库更新资源了。

特别说明:一般很多镜像库都非常大,建议只选择自己需要的部分添加就可以了,不然自动下载的结果就是硬盘被吃满

代理设置

由于公司内网存在代理,因此为了让仓库正常使用,需要添加网络代理。在左侧Administraion中选择Server,在里面有设置Http Proxy的地方,配置对应的代理即可。如下图:

使用私有库

到目前为止,就完成了私有库的搭建,项目此时build.gradle脚本中的repository就可以使用自己的库了。例如在某个Android的build中,就可以将build.gradle修改为下面这样:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        maven { url "http://localhost:8081/nexus/content/repositories/android"}
    }
    dependencies {
        classpath "com.android.tools.build:gradle-experimental:0.2.+"
    }
}

allprojects {
    repositories {
        maven { url "http://localhost:8081/nexus/content/repositories/android"}
    }
}

常见问题

1. Nexus私服忘记用户名密码,怎么处理?

太久不登录,忽然会发现忘记了账号密码(默认账号密码为admin,admin123),如果是自己的私服,有一种彻底不需要账号密码的方式,配置如下:

  1. 关闭Nexus服务: /Users/zixie/zixie/Library/nexus-2.12.0-01/bin/nexus stop
  2. 打开Nexus安装目录下/sonatype-work/nexus/conf目录。
    • 找到并打开security.xml文件。
    • 找到如下节点 <userRoleMapping> <userId>anonymous</userId> <source>default</source> <roles> <role>anonymous</role> <role>repository-any-read</role> </roles> </userRoleMapping>

    在其中roles行中添加: <role>nx-admin</role> 添加后变为: <userRoleMapping> <userId>anonymous</userId> <source>default</source> <roles> <role>anonymous</role> <role>nx-admin</role> <role>repository-any-read</role> </roles> </userRoleMapping>

  • 再起启动服务,此时就发现不再需要登陆了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏重庆的技术分享区

Python安装与Eclipse环境配置(踩坑,看完这篇就够了)

11820
来自专栏肖洒的博客

GitHub Pages自定义域名

最早用GitHub Pages做个人博客,初始的二级域名就是https://x-nicolo.github.io/,之后用了一个免费顶级域名,在Freenom ...

49550
来自专栏流柯技术学院

CAS客户端服务器端配置步骤

CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一...

74420
来自专栏技术博文

Linux下安全扫描工具Nmap用法详解

扫描器是一种能够自动检测主机安全性弱点的程序。扫描器通过发送特定的网络数据包,记录目标主机的应答消息,从而收集关于目标主机的各种信息。目前网络上有很多扫描软件,...

64280
来自专栏L宝宝聊IT

rsync远程同步示例

18630
来自专栏Jed的技术阶梯

Linux下使用Nexus创建maven私服

关于系统运行级别以及chkconfig命令的用法参考Linux的运行级别和chkconfig用法

2.4K20
来自专栏从零开始学 Web 前端

绑定Github上的个人博客到Godaddy域名

65510
来自专栏Android点滴积累

快速搭建一个本地的FTP服务器

快速搭建一个本地的FTP服务器   如果需要开发FTP文件上传下载功能,那么需要在本机上搭建一个本地FTP服务器,方便调试。 第一步:配置IIS Web服务器 ...

63980
来自专栏电光石火

Nexus3.x安装及配置

2K60
来自专栏pangguoming

CentOS查询端口占用和清除端口占用的程序

14950

扫码关注云+社区

领取腾讯云代金券