Android Studio创建项目后默认使用的依赖服务器是jcenter,如下:
通过它,我们可以很方便引用一些很优秀的依赖模块进行开发,提高开发效率,但是,这些模块都是开源的,在企业内部,有些代码模块仅能内部使用,那么,我们就不能把它上传到jcenter了,我们需要自己搭建依赖服务器,从那里拉取模块。
下面记录一下如何基于Nexue搭建:
1. 下载Nexue的安装包,这里下载版本3.3.1的Uinux版本:
下载后,上传到服务器,这里使用我自己的服务器进行安装测试:
解压后目录如下:
2. 配置
最新版本的nexue需要JDK1.8及以上支持
配置etc目录下的配置文件,修改默认端口,默认为8081:
启动,发现启动失败:
看了启动日志,缺少java路径配置,修改bin下的nexue可执行文件,见14行:
使用run参数运行看看:
Hoho~好玩了,内存不够分配,之前在公司配置过一次,看了一下,安装启动这个Nexue服务至少需要700MB内存空间,现在我这台云服务器,明显爆了,囧……
算了,直接在本机配置吧,运行配置都一样的。因为Mac电脑底层也是Unix的,所以刚刚这个安装包也可以在Mac系统配置运行,按照通样修改,运行成功:
浏览器打开http://localhost:8081看看:
默认的初始登录账户是admin,其密码为admin123。
3. Nexue启动好了,下面创建一个模块仓库
进入设置页面,点击"Repositories",可以看到一些默认的仓库:
为了不混淆,建议新建一个用户并分配其权限,然后用那个用户进行仓库建立,这里本机,就不那么麻烦了,接着点击"Create repositories",进入如下界面,选择"maven2(hosted)":
填写仓库名称,其他默认,然后页面最下面点击"Create"确认:
创建完后如下所示:
点击这个仓库,可以看到详细信息:
4. 仓库创建好了,现在使用Android Studio创建项目代码并上传到仓库:
创建AndroidCommon项目:
项目根目录的仓库增加"mavenLocal()":
新建的项目只有一个app模块,不能用它作为被依赖的模块,因为会被解析为APK包,因此,需要新建一个模块,这里新建模块名为"common"。编辑"common/build.gradle",首先添加maven插件支持:
然后增加上传任务,注意,需要在android结点添加,且任务名称需为"uploadArchives":(后面已修改pom.artifactId为common)
简单编写一个类,测试一下,然后执行上传任务,另外,每次新增功能,都要修改"pom.version"的版本号,否则无法上传:
上传后,仓库如下:
5. 在项目中引用自己搭建的仓库模块
项目根目录的gradle增加仓库路径:
在app/build.gradel增加引用:
调用看看行不行:
可以找到模块代码:
运行输出:
搭建流程就这样了,后面再根据实际需要完成仓库的模块代码即可。