上传aar到maven服务器
通过maven私服搭建教程,我们成功的搭建了自己的maven服务器,接下来,我们可以把Android项目的模块打包成aar包,可以提高编译速度,也可以减少编程时不小心把代码修改的了问题。
配置上传
Release 使用Gradle可以非常方便的打包aar并上传,打开模块所在的目录下的
build.gradle
文件,顶部添加如下代码:apply plugin: ‘com.android.library’
apply plugin: ‘maven’
group 'android.cn.bearever' //分组,相当于文件夹
version '1.0.1' //版本号
appply plugin: 'xxx'
表示的是需要引用插件xxx,这里的com.android.library
表示需要引用Android库的插件,因为我们需要打包的是一个Android的aar包。下面的maven
表示需要引用Maven的插件,这样我们就可以上传到自己的maven服务器了。group 'android.cn.bear'
表示的是这个文件在maven服务器的文件目录,version '1.0.1'
就表示这个库的版本是“1.0.1”。 下面我们开始配置上传到maven服务器,在文件的最底部添加如下代码:
uploadArchives {
repositories {
mavenDeployer {
//release包
repository(url: 'http://localhost:8081/nexus/content/repositories/releases') {
authentication(userName: 'admin', password: 'admin123')
}
//快照
snapshotRepository(url: 'http://localhost:8081/nexus/content/repositories/snapshots') {
authentication(userName: 'admin', password: 'admin123')
}
pom.artifactId = 'mylib' //库名字
pom.packaging = 'aar' //文件类型
}
}
}
这里的uploadArchives
就是上传aar包的Task,mavenDeployer
表示这是发布到maven的,repository和snapshotRepository
分别表示正式包和快照包的配置。url
是maven服务器的地址,可以在maven服务器里面查看 authentication(userName: 'admin', password: 'admin123')
就是maven的登录账号。pom.artifactId
表示的是这个库的名字,pom.packaging
表示的是库的文件格式。
最后整个build.gradle
文件格式大概如下
apply plugin: 'com.android.library'
apply plugin: 'maven'
group 'android.cn.bearever' //分组,相当于文件夹
version '1.0.1' //版本号
android{}
dependencies{}
uploadArchives{}
Snapshot 前面提到还有快照版本的库,那么怎么上传快照版本的库呢?只需要在
version
里面加上-SNAPSHOT
就会上传到快照仓库。例如apply plugin: ‘com.android.library’
apply plugin: ‘maven’group ‘android.cn.bear’ //分组,相当于文件夹
version ‘1.0.1-SNAPSHOT’ //版本号,-SNAPSHOT表示这是快照版本
….
生成aar包上传到maven
最后进入模块目录在终端输入gradlew uploadArchives
就可以了。或者 gradlew moudleName:uploadArchives
引用
Release 首先需要规定仓库的地址,在跟项目的
build.gradle
里面添加repositories {
maven { url 'http://localhost:8081/nexus/content/repositories/releases' } google() jcenter() }
在其他模块的build.gradle
的dependencies
添加依赖引用,例如
dependencies {
.....其他的依赖引用
implementation 'android.cn.bearever:mylib:1.0.1'
}
implementation语法规则implementation 'groupId:libname:version'
- Snapshot
那怎么引用snapshot
版本的库呢,需要在根项目添加快照的仓库地址。例如
repositories {
maven {
url 'http://localhost:8081/nexus/content/repositories/releases'
}
maven {
url 'http://localhost:8081/nexus/content/repositories/snapshots'
}
google()
jcenter()
}
引用的时候在版本号后面加上-SNAPSHOT
就表示需要引用快照版本,例如:
implementation 'android.cn.bearever:mylib:1.0.1-SNAPSHOT'