• Android Studio 生成开发库并打包maven包上传到私有服务器使用


    目录

    一、概述

    二、生成开发库

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

    END

    欢迎关注 一树 的博客

  • 相关阅读:
    日常Bug排查-MVCC和for update混用导致读数据不一致
    unity 渲染性能分析工具
    神经网络——循环神经网络(RNN)
    【无标题】
    html渲染优先级
    CCF CSP认证 历年题目自练Day19
    【数据结构】堆的拓展延伸 —— 堆排序 和 TopK问题
    [附源码]java毕业设计文章管理系统查重PPT
    详解Linux的grep命令
    PHP简单实现预定义钩子和自定义钩子
  • 原文地址:https://blog.csdn.net/linhuorongandroid/article/details/126839268