• Android 发布Library 到远程maven 私服仓库(Nexus)


    下载Nexus 并配置私库

    前言

    一、使用Nexus3.x搭建maven私服
        1、下载Nexus
        2、Nexus的安装与配置
        3、Nexus 私服仓库的创建

    二、Android Gradle 配置远程maven 脚本

       1、AndroidGradle7.0以前
       2、AndroidGradle7.0以后

    前言

    很多小伙伴在开发Android的时候,特别是一些ToB项目中,往往要出不同的app,但是依赖的业务流程基本都是一样的,相当于多个app要依赖一个lib。为了方便维护lib,一般做法会有一下几种:

    • 1、将lib 打包成jar(缺点:每次更新都需要打包更新)
    • 2、将lib 提交到github 私有仓,并发布到Jitpack 中(简单方便,但是不方便更新,每次都要提交git后并在github 生成tag才能在jitpack 部署)
    • 3、将lib 发布到Nexus 私有仓,并gradle 部署maven(方便组内其他成员共同维护,且方便发布,只需要更新Gradle 中版本配置并执行Task即可)

    而今天要说的就是第三种。

    一、使用Nexus3.x搭建maven私服

       1、Nexus 下载地址

       nexus下载地址

       2、Nexus的安装与配置

       1、解压到当前目录

       2、配置本机环境变量
    在这里插入图片描述在这里插入图片描述

       3、进入…\nexus-3.38.0-01-win64\nexus-3.38.0-01-win64\nexus-3.38.0-01\etc目录下找到:nexus-default.properties文件

    在这里插入图片描述

    其中比较关键的几个参数:

    application-port:是IP的端口号,默认为8081,如果端口号被占用,自行换成其他端口号

    application-host:是你访问的nexus服务器的IP,默认为0.0.0.0(即只要是本机上的IP,就能连上nexus服务器,详解点我)。为了安全和屏蔽掉其他IP,我们可以改访问IP为localhost指向的IP(一般默认指向127.0.0.1,可以去C:\Windows\System32\drivers\etc的hosts文件中查询localhost指向的IP),改成本机上其他IP也可以

    注意:如果想让局域网其他设备能访问,一定要关闭防火墙,且网段是一样的!

       4、打开cmd ,输入:
       nexus.exe /run
    在这里插入图片描述

       出现以上,说明启动Nexus 成功,再到浏览器输入:http://172.16.4.55:9082/

    在这里插入图片描述
    以上就说明整个Nexus 包括环境变量、ip、端口 都已经配置完成。

       3、Nexus 私服仓库的创建

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    复制URL,至此,Nexus 的私服仓库已经建立完成。下面将是Android Gradle 配置。

    二、AndroidGradle配置远程maven脚本

    • 1、AndroidGradle7.0以前
    apply plugin: 'maven'
     
    uploadArchives {
        repositories {
            mavenDeployer {
                repository(url: url//私有maven库地址) {
                    authentication(userName//账号, password// 密码)
                }
                pom.version = version // 版本信息
                pom.artifactId = artifactId // 项目信息
                pom.groupId = groupId
                pom.name = name
                pom.packaging = packaging // 打包类型,例如:aar
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述

    • 2、AndroidGradle7.0以后

    在lib 中的build.gradle 中配置maven-publish

    plugins {
        id 'com.android.library'
        id 'maven-publish'
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    配置版本信息

    
    publishing {
        repositories {
            maven {
                credentials {
                    username '仓库发布用户名' 
                    password '仓库发布用户密码' 
                }
                url 'http://.....' // 仓库地址
    
                allowInsecureProtocol = true
    
            }
        }
    }
    afterEvaluate {
        publishing {
            publications {
                release(MavenPublication) {
                    // 添加以下配置可以自动从编译容器中获取release版本内容(使用debug可以获取debug版本内容),并生成pom文件
                    // 注意:发布物声明必须在 afterEvaluate 内部,因为 components 在 afterEvaluate 阶段才生成完成
                    from components.release //可以配置成debug 或者release
    
                    version '2.2.3'//版本
                    artifactId '名称'
                    groupId = 'com.xx.xx'
                    description '版本信息'
    
    
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    配置完成后,点击AS 右侧栏Task 中的发布即可

    在这里插入图片描述

  • 相关阅读:
    金仓数据库KingbaseES数据库参考手册(服务器配置参数1. 设置参数)
    Go 代码块与作用域,变量遮蔽问题详解
    【Python实战】--词云制作
    Cesium 拖拽3D模型
    vue2结合electron开发桌面端应用
    Writing Tools I Use To Get More Views And Engagement On My Post
    https认证过程/加密解密
    GaussDB SQL基础语法示例-BOOLEAN表达式
    vagrant设置磁盘大小
    一次 Java log4j2 漏洞导致的生产问题
  • 原文地址:https://blog.csdn.net/Android_LeeJiaLun/article/details/125006877