解决Android 打包aar 无法引用类库中 dependencies 远程依赖

版权声明:欢迎转载,附带链接。 https://blog.csdn.net/janronehoo/article/details/82887791

前言:

最近在项目中使用到Maven本地仓库,之前用Maven只是用别人的库做依赖。而对与上传本地仓库或外部仓库还不是很了解,在学习了别人的技术文章后在这里做一些总结。

基本描述:

maven的仓库分两类:

1、本地仓库

maven在本地存储构件的地方。
maven本地仓库的默认位置:在用户的目录下.m2/repository/的仓库目录。

2、远程仓库

两个 Maven 中央库:mavenCentral 和 jcenter。
部署在内网服务器的私有仓库。

Maven在本地仓库中的对应存储路径:

1、groupId唯一标识符:com.android.dzrefresh 对应路径:com/android/dzrefresh
2、artifactId类似于项目名称:App 对应路径:com/android/dzrefresh/App
3、version版本号:1.0.0 对应路径:com/android/dzrefresh/App/1.0.0
对应得也就是:
compile 'com.android.dzrefresh:App:1.0.0'

指定本地仓库路径:

自定义本地路径:

repositories {
    maven { url 'D://Users/user2/.m2/repository' }
    //repository(url: "file://"+getRootDir()+"/repository")

    def localUrl = 'file://'+getRootDir()+'/repository'
    allprojects {
    repositories {
        maven { url localUrl }
        mavenCentral()
    }

}

默认本地路径:

repositories {
    mavenLocal()
}

</br>

发布本地库流程如下:

一、新建一个Android项目

在项目下创建一个Libary(如果直接在Android项目下发布到本地仓库会生成apk包,而lib下生成的是aar包可以作为依赖使用)。

二、配置参数

在Library也就是刚才创建的AndroidLib下的gradle.build中添加

apply plugin: 'maven'
uploadArchives{
    repositories.mavenDeployer{
        // 本地仓库路径
        repository(url:"file://D://Users/user2/.m2/repository/")
        // 唯一标识
        pom.groupId = "com.android.dzrefresh"
        // 项目名称
        pom.artifactId = "App"
        // 版本号
        pom.version = "1.0.0"
    }
}

也可以通过maven-publish方式发布

apply plugin: 'maven-publish'
publishing {
    publications {
        maven(MavenPublication) {
            artifact "D://DZRefresh/xxlib/build/outputs/aar/xxlib-debug.aar"
            groupId "com.android.dzrefresh"
            artifactId "APP"
            version "1.0.0"
        }
    }
}

三、发布到本地仓库

maven方式命令

gradlew  uploadArchives

maven-publish方式

gradlew  publishToMavenLocal

四、使用本地库:

1、在Android项目下的build.gradle文件中配置路径

   repositories {
        jcenter()
        mavenLocal()
    }

2、引用

compile 'com.android.dzrefresh:App:1.0.0'



作者:x小明
链接:https://www.jianshu.com/p/cff4684803f3
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

ref:

https://blog.csdn.net/qq_30379689/article/details/81432291

https://blog.csdn.net/u011840744/article/details/50608677

https://blog.csdn.net/zsf442553199/article/details/77882531

原来aar中的远程依赖库都在这里进行了声明,看来只引用aar文件是不够的。

在要引入aar的中加入:

compile 'zhousf.lib:sdk-zhousf:1.0-SNAPSHOT'
运行检查结果,的确没有问题,aar中的远程依赖库okhtt3可以正常使用了。
输入Terminal命令检验下:gradlew :app:dependencies --configuration compile 

https://www.cnblogs.com/bluestorm/p/6757999.html

https://blog.csdn.net/zhaoyanjun6/article/details/78523958

https://blog.csdn.net/mysimplelove/article/details/79390046

猜你喜欢

转载自blog.csdn.net/janronehoo/article/details/82887791