文章目录

  • 一、Maven是什么?
  • 二、Maven发布项目到本地
  • 2.1 准备工作
  • 2.2 创建上传任务
  • 2.3 开始上传
  • 2.4 使用上传到本地的依赖
  • 三、Maven发布项目到私服
  • 3.1 搭建私服
  • 3.1.1 安装并运行服务器
  • 3.1.2 配置私服仓库
  • 3.2 配置需要上传的模块
  • 3.3 使用上传到私服的模块


一、Maven是什么?

Maven是一个Java项目管理工具,同gradle仓库功能意义。(其他的请自行百度)。
我们通常使用的是 搭建自己的私服,还存储一些公共模块。或者有些公司会把常用的库缓存到自己的私服(实现网络缓存)。

二、Maven发布项目到本地

2.1 准备工作

创建一个Android项目,其中包含两个模块:app module 和 baselibrary module。

安卓怎么搜maven第三方包_maven构建android

2.2 创建上传任务

在baselibrary模块的build.gradle文件指明上传任务。

...
//指明要使用maven插件
apply plugin: 'maven'
...
//定义一个uploadArchives task,并且指明要上传的参数
uploadArchives{
    repositories.mavenDeployer{
        // 设置本地仓库路径
        repository(url: uri('../localRepository'))
        // 指明模块包名(通常为模块包名,也可以任意)
        pom.groupId = "com.canjun"
        // 指明模块名称
        pom.artifactId = "baselibrary"
        // 指明当前module的version
        pom.version = "1.0.0"
    }
}

sync now 一下gradle文件

同步完成,会发现 定义的gradle task (uploadArchives) 已经生效了。

安卓怎么搜maven第三方包_上传_02

2.3 开始上传

安卓怎么搜maven第三方包_安卓怎么搜maven第三方包_03


或者

安卓怎么搜maven第三方包_服务器_04


如果上传到本地仓库,则如下图所示,在本地仓库路径下 存储module的aar文件

安卓怎么搜maven第三方包_服务器_05

2.4 使用上传到本地的依赖

在项目的build.gradle文件中,指明本地仓库的位置。

安卓怎么搜maven第三方包_安卓怎么搜maven第三方包_06

再在主模块(app Module)中,按照groupId:artifactId:version的形式指明依赖的模块。

安卓怎么搜maven第三方包_maven_07


结果如期望一致

三、Maven发布项目到私服

3.1 搭建私服

3.1.1 安装并运行服务器

Nexus服务器 官网不太好下载,提供一个百度云盘下载。

链接: https://pan.baidu.com/s/1NNuEsuWok2XTvWDI9Gc1HQ 提取码: 92bc
如果着急使用,可以联系本人哦

解压:

安卓怎么搜maven第三方包_maven构建android_08


找到可执行文件 nexus

安卓怎么搜maven第三方包_安卓怎么搜maven第三方包_09


开始nexus服务:

./nexus start

3.1.2 配置私服仓库

a. 设置登录密码

安卓怎么搜maven第三方包_安卓怎么搜maven第三方包_10


使用指定的密码登录。会进行一系列初始化(此处忽略了)。

3.2 配置需要上传的模块

接下来我们进行上传到私服的配置工作。

a.首先获取私服仓库地址 ,可以通过下图的三个步骤获取

安卓怎么搜maven第三方包_maven构建android_11


b.配置baselibrary模块的gradle文件

...
apply plugin: 'maven'
...
uploadArchives{
    repositories.mavenDeployer{
        // 设置私服仓库路径
        repository(url: "http://127.0.0.1:8081/repository/maven-releases/") {
            //使用nexus登录默认用户名和密码
            authentication(userName: "admin", password: "admin123")
        }
        // 指明模块包名(通常为模块包名,也可以任意)
        pom.groupId = "com.canjun"
        // 指明模块名称
        pom.artifactId = "baselibrary"
        // 指明当前module的version
        pom.version = "1.0.0"
    }
}

安卓怎么搜maven第三方包_maven构建android_12


安卓怎么搜maven第三方包_上传_13


接下来,就是使用私服中的模块依赖。

3.3 使用上传到私服的模块

安卓怎么搜maven第三方包_安卓怎么搜maven第三方包_14


app module还是 指明需要依赖的库

implementation 'com.canjun:baselibrary:1.0.0'

最最最重要的是,要设置nexus服务器的访问权限,以便app 模块可以下载依赖

安卓怎么搜maven第三方包_maven构建android_15