目录
一、概述
二、生成开发库
三、打包成maven包并上传到服务器
四、maven包库文件使用
五、maven包的维护
六、小结
END
一、概述
多个apk开发或不同平台之间的移植经常需要用到同样的代码或者控件,用复制粘贴的方式ctrl+C\V 共同代码块,一处改动之后,其他用到该代码块的项目也需要修改,不方便维护。如果将经常复用的代码或者控件封装成在线库的方式,则只需维护公共代码库即可。代码块不完善,需要修改,修改后,更新库文件后打包到服务器,使用者通过implementation 引用相关版本的库文件使用。以下介绍如何通过Android Studio生成代码块,并打包maven包,上传到私有服务器供开发者使用。
Tips:
1、之所以用私有服务器,是因为某些开发库不方便开源。
2、也可以搭建nexus 实现自动化部署。
3、maven包不管放在服务器,还是本地,只需指明访问路径或者url即可。
二、生成开发库
工程说明:
- XXXViewLib:控件库工程,生成库文件
- XXXView :测试工程,生成测试apk
开发工具:
- Android Studio 版本 2021.2.1
- gradle 版本 gradle-7.3.3
详细步骤:
1、新建XXXView工程
- File --New --New Project :新建XxxView 工程 用于测试XxxViewLib 库工程
- File--New --New Module 新建HxxViewLib 控件库工程
Tips:这里选择的是Android Library
库工程的build.gradle 文件 会自动 指明编译是library而不是APP
plugins {
id 'com.android.library'
}
APP工程的build.gradle 指明的是 application
plugins {
id 'com.android.application'
}
2、在HxxViewLib 工程中放入java 和res 相关文件
- 在HcnView APP 工程build.gradle中 添加 implementation project(path: ':HxxViewLib') 测试库工程
dependencies {
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'com.google.android.material:material:1.4.0'
implementation project(path: ':HxxViewLib')
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
- 导入了相关库之后,在MainActivity 中 引入相关库文件资源测试即可。
3、生成AAR文件
Tips:AAR文件可以理解为开发库文件,可以供其他工程使用。有两种方式可以导入该文件。
1、将AAR文件放到libs目录 本地使用AAR:
implementation files('libs/xxx.aar')
2、如果AAR 文件已经放到了maven包里则通过自动更新的方式使用
implementation 'com.xxx.viewlib:XxxViewLib:1.0.1'
- 选中XxxViewLib 库工程,build--make Module xxxx
- 执行完毕 之后 在此目录会生产AAR文件:\build\outputs\aar\XxxViewLib-debug.aar
三、打包成maven包并上传到服务器
1、在XxxViewLib 库工程的build.gradle 配置打包maven包
publishing {
publications {
maven(MavenPublication) {
//指定aar 文件路径
artifact "D:\\studio\\XxxView\\XxxViewLib\\build\\outputs\\aar\\XxxViewLib-debug.aar"
//以下参数对应于被引用时:implementation 'com.xxx.viewlib:XxxViewLib:1.0.0'
groupId "com.xxx.viewlib"
artifactId "XxxViewLib"
version "1.0.0"
}
}
}
2、在XxxViewLib目录 执行:./../gradlew publishToMavenLocal 生产maven包
3、默认生产的maven包在user目录下
可以看到里面有aar文件和pom 文件
4、将整个repository 目录 上传到服务器 【目前是手动上传到服务器,后续可搭建服务器自动部署,或搭建nexus】
四、maven包库文件使用
测试maven包【使用者只需关注此步骤】
- 在需要使用控件库的工程中,build.gradle 添加
dependencies {
.....
implementation 'com.xxx.viewlib:HXXViewLib:1.0.0'
.....
}
- 在settings.gradle 中 增加maven 链接检索。如果其他地方没找到库文件,会到指定的url 中检索下载
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven {
allowInsecureProtocol = true
// 指定访问的url 或者本地路径
// url 'C:\\Users\\xxx\\.m2\\repository' // 本地路径
// 服务器url
url 'http://www.xxxx.com/xxxx/xxxx/repository/'
}
}
}
- sync 之后 会自动下载库文件,下载成功后,可以使用相关库了。
五、maven包的维护
- 如果XxxViewLib 需要修改,修改之后,build.gradle中对应修改maven包的版本
publishing {
publications {
maven(MavenPublication) {
artifact "D:\\studio\\XxxView\\XxxViewLib\\build\\outputs\\aar\\XxxViewLib-debug.aar"
groupId "com.xxx.viewlib"
artifactId "XxxViewLib"
//版本改为1.0.1 然后再次打包将1.0.1的包也上传到服务器
//对于使用者而言:implementation 'com.xxviewlib:XxxViewLib:1.0.1' 即可
version "1.0.1"
}
}
}
六、小结
本文概要记录了如何通过Android Studio 生成 软件开发库,并将软件开发库打包成maven包,上传到个人或公司服务器,供所需这使用。将公共代码块或者经常使用的控件,封装成软件开发库,统一维护,做到模块化开发。