目录

一、概述

二、生成开发库

三、打包成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 库工程

Androidstudio指定本地maven地址 androidstudio maven_库文件

  • File--New --New Module  新建HxxViewLib 控件库工程

Tips:这里选择的是Android Library

Androidstudio指定本地maven地址 androidstudio maven_android studio_02

 库工程的build.gradle 文件 会自动 指明编译是library而不是APP 

plugins {

    id 'com.android.library'

}

APP工程的build.gradle 指明的是 application 

plugins {

    id 'com.android.application'

}

2、在HxxViewLib 工程中放入java 和res 相关文件

 

Androidstudio指定本地maven地址 androidstudio maven_服务器_03

  • 在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 
  • Androidstudio指定本地maven地址 androidstudio maven_服务器_04

  • 执行完毕 之后 在此目录会生产AAR文件:\build\outputs\aar\XxxViewLib-debug.aar

Androidstudio指定本地maven地址 androidstudio maven_库文件_05

三、打包成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包

Androidstudio指定本地maven地址 androidstudio maven_库文件_06

3、默认生产的maven包在user目录下

Androidstudio指定本地maven地址 androidstudio maven_服务器_07

 可以看到里面有aar文件和pom 文件

Androidstudio指定本地maven地址 androidstudio maven_服务器_08

4、将整个repository 目录 上传到服务器  【目前是手动上传到服务器,后续可搭建服务器自动部署,或搭建nexus】

Androidstudio指定本地maven地址 androidstudio maven_服务器_09

四、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包,上传到个人或公司服务器,供所需这使用。将公共代码块或者经常使用的控件,封装成软件开发库,统一维护,做到模块化开发。

END