使用Nexus搭建自己的Maven私服及上传下载aar

搭建私有Maven仓库相关

    • 搭建Maven私服环境
    • 进行Maven库的各种配置
    • 上传aar或jar到maven库
        • 1、直接文件上传
        • 2、脚本自动上传

搭建Maven私服环境

   搭建所需的工具环境有几种,这里我选择使用Nexus进行搭建:Nexus下载地址。
使用Nexus搭建自己的Maven私服及上传下载aar_第1张图片
选择自己的对应环境进行下载,我的是mac环境,所以基于mac的来写。
下载解压后找到bin目录,执行nexus:

会有提示支持的各种命令,这里我们先执行start:
使用Nexus搭建自己的Maven私服及上传下载aar_第2张图片
我的因为已经启动过了,所以执行的是restart,然后执行status,可以看到nexus已经是running状态了。
至此,我们基于Nexus的Maven环境就算是初步建立完成了。

进行Maven库的各种配置

然后就可以进入Maven的网页面板进行配置。默认的端口号是8081,所以在浏览器输入地址http://localhost:8081进入网页配置。默认配置可以在/etc/nexus-default.properties这个配置文件中进行修改。
使用Nexus搭建自己的Maven私服及上传下载aar_第3张图片
默认的管理员账户和密码分别是admin和admin123。
之后我们使用maven私服的一个目的就是能够代理其他的maven服务器,例如jcenter等,从而能够在自己的maven私服有一份缓存,避免网络不好的影响。
使用Nexus搭建自己的Maven私服及上传下载aar_第4张图片
在页面的左侧选择Browse,可以看到当前所有的仓库。Nexus默认就已经帮我们建立了各种常用仓库。其中仓库的type类型,大致有3种:

1、proxy
代理类型,比如我们建立一个仓库来代理JCenter的仓库。
2、hosted
自己的主机仓库,一般放自己上传的lib。
3、group
仓库组,可以包含多个仓库,例如默认就有的仓库组maven-public。

新建一个仓库:
使用Nexus搭建自己的Maven私服及上传下载aar_第5张图片
点击Create repository
使用Nexus搭建自己的Maven私服及上传下载aar_第6张图片
这里有很多类型的仓库,我们目前要用的就是三种maven2类型的仓库。
例如建立一个代理JCenter的代理仓库,点击maven2(proxy)
使用Nexus搭建自己的Maven私服及上传下载aar_第7张图片
基本填写个仓库名称,和被代理的仓库地址就可以了,其他的没特殊要求默认即可。
这个时候我们应该有了多个代理仓库以及几个我们的本地仓库,如果全部在Gradle中配置地址的话太多了,所以我们可以用一个仓库组将他们都包含在内,然后项目中指明依赖的仓库组地址即可:
使用Nexus搭建自己的Maven私服及上传下载aar_第8张图片
在仓库列表,点击仓库进入maven-public,会有如上图所示界面,将左侧的未包含的仓库移动到右侧,就将仓库包含到这个仓库组了。
最后,在Android项目的build.gradle中添加这个仓库组的依赖地址:
使用Nexus搭建自己的Maven私服及上传下载aar_第9张图片
加入这个maven仓库地址,我的这个仓库组实际已经包含了google和jcenter的仓库了,所以上面这两个被x的声明是可以去掉的了。

上传aar或jar到maven库

1、直接文件上传

建立一个Module工程,直接编译运行,就会在Modul工程的/build/outputs/aar目录下会生成aar包。
然后上传这个aar文件:

使用Nexus搭建自己的Maven私服及上传下载aar_第10张图片
使用Nexus搭建自己的Maven私服及上传下载aar_第11张图片
填写完毕之后点击Upload,没问题的话就上传成功了。就可以在自己的项目中去依赖刚刚上传的依赖库了。
例如:
implementation 'com.hanli.test:testmaven:1.0.0@aar'
注意后面的@aar,如果不想加这个的话需要在上图的最后选项Packaging中填写aar

2、脚本自动上传

每次需要这样文件上传,肯定比较繁琐了,所以一般都会使用Gradle脚本自动构建上传:
使用Nexus搭建自己的Maven私服及上传下载aar_第12张图片
加入上图标识的插件和脚本,脚本代码如下:

uploadArchives {
    configuration = configurations.archives
    repositories {
        mavenDeployer {
            repository(url: 'http://localhost:8081/repository/maven-releases/') {
                authentication(userName: 'admin', password: 'h12345678')
            }
            pom.project {
                version '1.1.0' //版本名称
                artifactId 'testmaven'  //和前面网站上填写的一样
                groupId 'com.hanli.test'  //和前面网站上填写的一样
                packaging 'aar' //填写aar
                description 'update version 1.1.0 add new method' //更新描述
            }
        }
    }
}

然后可以在Gradle脚本任务列表中看到这个脚本了:
使用Nexus搭建自己的Maven私服及上传下载aar_第13张图片
运行该脚本,就可以自动构建上传了。
注意:release的库不可以同版本覆盖。

你可能感兴趣的:(自动化)