最近项目陆续都切换到了Android Studio,同时切换到gradl编译,但是经常由于墙的问题使用的新的插件更新的速度非常慢。因此决定在自己的Mac机器上部署一套私有仓库代理,即用于自己的开发,也可以提供给团队或者自己其余的机器使用。
Sonatype Nexus是现在比较流行和成熟的私有仓库搭建工具,透过nexus可以很轻松的搭建私有仓库。
/usr/loal/
,个人一般用自己专门的位置。
mv nexus-2.12.0-01 ~/zixie/Library/
至此nexus已经安装OK了,等修改好相关的启动配置,就可以使用了。
设置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}"
至此所有安装以及配置相关的内容都已经OK,接下来需要启动Nexus服务。
Nexus安装完成以后,成功启动服务以后,打开浏览器,输入:http://localhost:8081/nexus/即可打开配置管理段的页面。则说明安装成功了。
点击界面右上角 “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"}
}
}
太久不登录,忽然会发现忘记了账号密码(默认账号密码为admin,admin123),如果是自己的私服,有一种彻底不需要账号密码的方式,配置如下:
在其中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>