Android 生成本地和远程aar

  1. 新建一个library,在对应的gradle中增加以下配置:
apply plugin: 'maven'

uploadArchives{
    repositories.mavenDeployer{
        //生成本地仓库的地址
       repository(url:"file:///Users/xxx/.m2/repository")
        // 唯一标识
        pom.groupId = "com.xxx.xxx"
        // 项目名称
        pom.artifactId = "xxxx"
        // 版本号
        pom.version = "1.0.0"
        // 包名
        //pom.packaging = "aar"
    }
}

在右侧gradle工具栏中,对应的library下,选择Tasks->upload->uploadArchives 即可在对应目录生成aar

使用:
在项目gradle文件下:

buildscript {
    
    repositories {
        maven {url "file:///Users/xxxx/.m2/repository"}
    }
}

allprojects {
    repositories {
        maven {url "file:///Users/xxxxx/.m2/repository"}
    }
}
implementation 'com.xxx.xxx:xxxx:1.0.0'

问题:

  1. 上传aar的时候:
Could not deploy to remote repository | Failed to deploy artifacts/metadata: No connector available to access repository remote (//Users/xxxx/.m2/repository) of type default using the available factories WagonRepositoryConnectorFactory

这个问题,多半是repository路径不对,比如缺少"file://",等等

  1. 集成的时候,提示“程序包xxx不存在”,但是可以点击进入到对应的aar里面的类代码

这个问题多半是由于打包aar的时候,有的包名使用了大写,将包名改成小写,重新发布aar即可。

远程aar只需要将本地生成的.m2/repository下的com/xx/xx/....一起上传到远程git仓库即可,以码云为例,上传完成后,这样使用即可:

buildscript {
    
    repositories {
maven {url "https://gitee.com/xxx/xxxx/raw/master"}
    }
}

allprojects {
    repositories {
        maven {url "https://gitee.com/xxx/xxxx/raw/master"}
    }
}
implementation 'com.xxxx.xxxx:xxxxx:1.0.0@aar'

你可能感兴趣的:(Android 生成本地和远程aar)