Maven实现自定义Android 库自动管理和分发

  1. 首先,让我们创建我们想要发布为私有的库。

文件 -> 新建 -> 新建模块。

2.我想创建 Android 库。这里我选择Android Library。我们提供请求的信息并单击完成按钮。

 

3.在项目的跟目录创建一个新的 gradle 文件来负责发布我们的库。让它被称为gradle-mvn-push.gradle。在这里我们添加了maven-publish插件。因此,我们迈出了分享这个图书馆的第一步。

// 应用插件:'maven-publish'

apply plugin: 'maven-publish'

publishing {
    publications {
        myPublish (MavenPublication) {
            groupId '在gitlib上创建应用的时候有的'
            artifactId '在gitlib上创建应用的时候有的'
            version '2.1.0,在gitlib上创建应用的时候有的,每一次提交的时候记得加1,因为有缓存'
            artifact "$buildDir/outputs/aar/inij-release.aar"//自己的aar包路径

            pom.withXml {
                def dependencies = asNode().appendNode('dependencies')
                configurations.getByName("releaseCompileClasspath").getResolvedConfiguration().getFirstLevelModuleDependencies().each {
                    def dependency = dependencies.appendNode('dependency')
                    dependency.appendNode('groupId', it.moduleGroup)
                    dependency.appendNode('artifactId', it.moduleName)
                    dependency.appendNode('version', it.moduleVersion)
                }
            }
        }
    }
    repositories {
        maven {
            url 'gitlib上的maven地址'
            credentials(HttpHeaderCredentials) {
                name = "Private-Token"//就是这个值不用变Private-Token
                value = 'gitlib上的token'
            }
            authentication {
                header(HttpHeaderAuthentication)
            }
        }
    }
}

4、在模块的build.gradle中添加

apply from: "$rootDir/gradle-mvn-push.gradle"

并且设置minifyEnabled 为false

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

5、找到模块的publish双击运行,等待上传就可以了,点击publish前

每次打包的时候要删除.gradle 和 build缓存

如果上传过程中报错说找不到这个库的.aar,就先rebuild project整个项目,再进行publish 

6、给第三方接入我们的模块的时候就给gitlib上的maven地址+版本号就可以了,如:

6.1)在app的setting.gradle文件里面添加

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven {
            url 'gitlib上的maven地址'
            name 'inun'//仓库名
            credentials(HttpHeaderCredentials) {
                name = 'Private-Token'//就是这个值不用变Private-Token 
                value = 'gitlib上的token'
            }
            authentication {
                header(HttpHeaderAuthentication)
            }
        }
        google()
        mavenCentral()
    }
}
6.2)在app的build.gradle中添加
implementation 'com.iun.android:iun-sdk:2.5.53'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值