Maven管理Android项目

一、Maven是什么?

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

二、Maven发布项目到本地

2.1 准备工作

创建一个Android项目,其中包含两个模块:app module 和 baselibrary module。
在这里插入图片描述

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) 已经生效了。在这里插入图片描述

2.3 开始上传

在这里插入图片描述
或者
在这里插入图片描述
如果上传到本地仓库,则如下图所示,在本地仓库路径下 存储module的aar文件
在这里插入图片描述

2.4 使用上传到本地的依赖

在项目的build.gradle文件中,指明本地仓库的位置。
在这里插入图片描述

再在主模块(app Module)中,按照groupId:artifactId:version的形式指明依赖的模块。
在这里插入图片描述
结果如期望一致

三、Maven发布项目到私服

3.1 搭建私服

3.1.1 安装并运行服务器

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

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

解压:
在这里插入图片描述
找到可执行文件 nexus
在这里插入图片描述
开始nexus服务:

./nexus start

3.1.2 配置私服仓库

a. 设置登录密码
在这里插入图片描述
使用指定的密码登录。会进行一系列初始化(此处忽略了)。

3.2 配置需要上传的模块

接下来我们进行上传到私服的配置工作。
a.首先获取私服仓库地址 ,可以通过下图的三个步骤获取
在这里插入图片描述
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"
    }
}

在这里插入图片描述
在这里插入图片描述
接下来,就是使用私服中的模块依赖。

3.3 使用上传到私服的模块

在这里插入图片描述
app module还是 指明需要依赖的库

implementation 'com.canjun:baselibrary:1.0.0'

最最最重要的是,要设置nexus服务器的访问权限,以便app 模块可以下载依赖
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/dirksmaller/article/details/109056299
今日推荐