注意:推荐第三种方式,会自动上传到Maven仓库。无论何种方式生成的aar包,都支持第三方依赖,如果依赖不存在,请检查上传方式,看到文章最后有解决方法。
一、第一种方式生成aar包:
1、moudle默认生成的aar包
其实SDK开发和app的开发都差不多,主要的区别在于SDK开发需要集成。集成也有两种方式一种是打包成jar包,另外一种是打包成aar文件,区别在于jar包的文件只有class类不包含资源文件,aar包含资源文件。
2、点击androidstudio右上角的gradle 步骤如下 点击 assembleRelease
图片.png
3、编译成功后 找到aar
图片.png
二、第二种方式生成aar包:
1、配置maven-publish,右侧task任务会有publishing
plugins {
id 'maven-publish'
}
a95c9f9b45c1b81d39d458f5ff92f7f.png
2、配置maven自动上传
android {
afterEvaluate {
publishing {
repositories {
maven {
allowInsecureProtocol = true
url = MAVEN_FARM_MODULE_URL as String
credentials {
username NEXUS_USERNAME as String
password NEXUS_PASSWORD as String
}
}
}
publications {
releaseAAR(MavenPublication) {
groupId = GROUP_ID
artifactId = "coon"
version = "2.0.9"
from components.release
}
}
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}
artifacts {
archives androidSourcesJar
}
}
}
3、点击任务列表上的publish后,会自动上传到maven仓库。
三、第三种方式生成aar包:
1、moudle中的build.gradle中添加一句话
apply from: "nexus-publish-common.gradle"
2、nexus-publish-common.gradle文件
apply plugin: 'maven'
afterEvaluate { project ->
uploadArchives {
configuration = configurations.archives
repositories {
mavenDeployer {
repository(url: MAVEN_FARM_MODULE_URL) {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
}
pom.project {
groupId = GROUP_ID
artifactId = "coon"
version = "2.1.0"
packaging TYPE
}
}
}
}
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}
artifacts {
archives androidSourcesJar
}
}
3、项目中gradle.properties配置参数值
#Maven�����件��URL
MAVEN_FARM_MODULE_URL=http://aaa.bbb.com/reory/ura-android/
#��nexus ossde����
NEXUS_USERNAME=admin
#ç�»å½�nexus ossç��å¯�ç �
NEXUS_PASSWORD=123456
#对�maven�GroupId��
GROUP_ID =com.rgoo.aaa
#å�
�类�
TYPE = aar
4、看到右侧任务列表生成一个upload的任务
f712f7f4ba305aa5aefab1b15b9e498.png
四、手动上传aar包到maven仓库
f96843480f991d40c82019740504eb8.png
注意:这个勾不要勾上,否则aar包依赖的第三方找不到。
上传成功.png