当前位置:   article > 正文

Maven实现自定义Android 库自动管理和分发_android maven 库使用gitlib 发布依赖

android maven 库使用gitlib 发布依赖
  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'
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/130571
推荐阅读
相关标签
  

闽ICP备14008679号