[TOC]
目录
Android studio 查找aar和Maven仓库配置
一、查找目标aar或jar的Maven依赖版本
1.老网址操作
2.新网址操作
二Maven仓库地址
1.默认仓库
2.其他仓库
3.镜像仓库
4.本地仓库
5.直接依赖
三、其他
1.搭建maven私有仓库
2. 把aar/jar module 发布到开源仓库
Android studio 查找aar和Maven仓库配置
一、查找目标aar或jar的Maven依赖版本
在Android开发的时候我们经常会使用到一些外部成熟的aar或jar依赖, 这些依赖目前通常是以Maven依赖的方式进行的, 我们引入一个依赖的时候,如果想查找最新版本进行依赖我们可以搜索
Maven Central网址 : https://search.maven.org/ (老网址 , Chrome 浏览器目前不会自动跳转新的)
Maven Central网址 : https://central.sonatype.com/ (新网址 , edge浏览器 老网址会自动跳转到新网址)
为了方便演示, 下面内容使用查找com.github.bumptech.glide:glide
进行演示
1.老网址操作
打开链接https://search.maven.org/ 然后输入框输入要搜索的内容(e.g. glide
) 回车
点击详情页面后, 右侧 有对应Maven依赖方式 和gradle依赖方式, 点击复制即可
2.新网址操作
打开链接https://central.sonatype.com/ 然后输入框输入要搜索的内容(e.g. glide
) 回车
回车后有对应的搜索内容, 此外 搜索内容过多时候 左测可以设置过滤 , 右侧可以设置排序方式 具体如下图:
点击进入详情后; 可以切换仓库管理工具 点击复制, 可以可以切换到Versions 标签页查看历史版本
新网址的 历史版本有依赖的项目数量( depended on), 通过查看可以知道当前使用的项目多少,方便开发者选择( 通常 更愿意选择更稳定的而不是更新的)
二Maven仓库地址
1.默认仓库
我们依赖aar后需要通过Maven仓库地址去下载对应的aar或jar文件,我们新建一个新Android 项目通常会在settings.gradle
文件默认配置Maven仓库如下:
...
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
...
2.其他仓库
通常如果我们有使用到GitHub仓库开源项目会依赖https://jitpack.io
; 自己企业通常也有自己的Maven地址通常也会配置大致如下:
...
repositories {
maven {//企业自己仓库配置,根据自己公司的来
credentials {
username 'xxx'
password 'xxx'
}
allowInsecureProtocol true
url = 'http://xxx.com/repository/xx'
}
maven {url 'https://developer.huawei.com/repo/'} // 华为的开源仓库
maven { url 'https://jitpack.io' } //GitHub仓库
//其他仓库
maven { url 'https://repo1.maven.org/maven2/' }
maven { url 'https://plugins.gradle.org/m2/' }
maven { url 'https://repository.apache.org/snapshots/' }
jcenter() // 使用 jcenter 仓库
google()
mavenCentral()
gradlePluginPortal()
}
...
3.镜像仓库
国内下载国外仓库有时候速度回比较慢导致下载超时,为了方便下载国内通常会有镜像仓库配置方便我们快速下载aar或jar文件等. 比较常见有阿里云仓库等如下:
...
repositories {
maven {//企业自己仓库配置,根据自己公司的来
credentials {
username 'xxx'
password 'xxx'
}
allowInsecureProtocol true
url = 'http://xxx.com/repository/xx'
}
maven {url 'https://developer.huawei.com/repo/'} // 华为的开源仓库
maven { url 'https://maven.aliyun.com/repository/central' }//阿里云镜像 中央仓库镜像
maven { url 'https://maven.aliyun.com/repository/public' } //阿里云镜像 central仓和jcenter仓的聚合仓
maven { url 'https://maven.aliyun.com/repository/google' } //阿里云镜像 Google库
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } //阿里云镜像 gradle-plugin(对应m2)
maven { url 'https://mirrors.cloud.tencent.com/nexus/repository/maven-public/' } //腾讯云 镜像 Maven公共仓库
maven { url 'https://mirrors.huaweicloud.com/repository/maven/' } //华为云 镜像 Maven仓库
maven { url 'https://jitpack.io' } //GitHub仓库
...
}
...
需要注意 仓库顺序, 查找顺序是从上到下; 所以 镜像仓库需要放在前面
此外为了方便查找搜索, 阿里云提供了对应的网址 https://developer.aliyun.com/mvn/guide 可以进行查找
4.本地仓库
有时候为我们修改完某lib库代码后,需要在本机上验证; 验证没问题后发布到公司的Maven仓库; 我们在本机上发布的Maven即本地仓库;大致如下:
打开对应lib的下的build.gradle
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
id 'maven-publish'
}
android {
...
}
dependencies {
...
}
afterEvaluate {
publishing {
publications {
maven(MavenPublication) {
//implementation 'com.jianshu.testlib:testlib:1.0.0' //这里的内容按自己需求来
groupId = "com.jianshu.testlib"
artifactId = "testlib"
version = "1.0.0"
artifact tasks.findByName("bundleReleaseAar")
}
}
repositories {
maven {
allowInsecureProtocol true//这行可以不写 (允许 Gradle 使用不安全的协议(例如HTTP而不是HTTPS))
//maven仓库的地址(这个地址可以随便写,即使没这个文件夹也没问题, 发布后会自动生成的)
url = 'file://D:/libs/localMaven'
//credentials { //这里credentials通常设置自己企业的Maven仓库时候会使用,设置用户名和密码
//username 'xxx'
//password 'xxx'
//}
}
}
}
}
具体操作如下图,此处本地Maven配置就写为了file://D:/libs/localMaven
如果你想查看文件确认可以找到 之前定义的路径
file://D:/libs/localMaven
如下可以看到生成了对应文件:使用的时候只需要在
settings.gradle
文件最前面添加上刚刚的路径:
...
repositories {
maven {
url = 'file://D:/libs/localMaven'//自己的本地Maven
}
maven {//企业自己仓库配置,根据自己公司的来
credentials {
username 'xxx'
password 'xxx'
}
allowInsecureProtocol true
url = 'http://xxx.com/repository/xx'
}
...
}
...
然后在对应的build.gradle使用
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
android {
...
}
dependencies {
...
implementation 'com.jianshu.testlib:testlib:1.0.0'//自己刚刚本地发布的 对应需求的名字
}
5.直接依赖
有时候我们本地已经有相关代码项目了, 我们不想把代码打包成一个aar,希望直接使用 这个我们可以直接使用项目依赖( 主要方便查看源码)
module和app同项目
如果需要依赖的aar和主application在一个项目里面; 我们可以在app的build.gradle
文件的dependencies
里面直接依赖如下:
....
dependencies {
....
implementation project(':mylibrary') //此处的 mylibrary 对应前面本地Maven截图中的, 为模块名 module name
}
module和app不同项目
如果项目不同做法类似我们可以找到module代码的路径 比如路径为 D:\work\code\MyApplication2\mylibrary
然后再需要依赖的app 对应的settings.gradle
最后面加上
....
include ':mylibrary'
project(":mylibrary").projectDir=new File("D:\\work\\code\\MyApplication2\\mylibrary")
然后再对应app的build.gradle
文件的dependencies
里面直接依赖如下:
....
dependencies {
....
implementation project(':mylibrary')
}
三、其他
1.搭建maven私有仓库
通常各个企业都会有自己企业的私有Maven仓库; 通过企业内部局域网可以访问; 方便企业内部员工合作开发,减少对外部的依赖
参考链接:
Nexus 搭建Maven私仓 https://blog.csdn.net/as34233/article/details/144193038
nexus 配置私有仓库配置 https://blog.csdn.net/binqian/article/details/143840149
Ubuntu搭建Maven私仓_并发布Android组件 https://www.jianshu.com/p/e58212d4490c
maven配置私有nexus仓库路径 https://blog.51cto.com/u_16099331/12408608
使用Nexus搭建maven私有仓库 https://www.jianshu.com/p/9740778b154f
Android Studio上传项目到Maven仓库 https://www.jianshu.com/p/57f8af15ef9c
Nexus搭建私有仓库教程【保姆级教程】https://www.douyin.com/video/7301666708664700210
2. 把aar/jar module 发布到开源仓库
通常企业或个人 会开发各种功能或工具库, 可以进行开源 并将对应的内容发布到开源仓库
开源项目能够展示企业的技术水平和文化 ,发布高质量的库可以提升企业在开发者社区中的形象和声誉; 社区成员可能会帮助修复问题和添加新功能,减轻企业内部团队的工作负担, 通过开源,可以使更多的开发者了解并使用该企业的技术栈或工具,增加产品的采用率.
将模块库进行开源发布可以参考如下链接:
参考链接:
android如何将module发布到jitpack.io https://www.jianshu.com/p/11d9928f940c
发布aar到jitpack上 https://blog.csdn.net/h_bpdwn/article/details/136369448
放弃JitPack,发布Android Library到Bintray、JCenter https://www.jianshu.com/p/9f81d5b5a451
如何发布Android库到Maven中心仓库 https://www.jianshu.com/p/0fa696f12b7f
希望开源库能帮助到你们的成长, 成长后希望各位大佬也能对开源社区贡献力量-_-