Android 从零开始打包module到Github上并作为远程maven仓库(附带遇到的一些问题)

最近想创建一个自己的maven库,这样开发的时候就不用总是导入module了,于是从头到尾学习了一下,现在记录下来

首先新建一个project,跟着在里面新建一个module,我有自己的module,所以直接导入了一个

接着,配置module里面的build文件,用来生成maven文件,再此之前,现在本地电脑里面新建一个文件夹,用来存储生成的maven文件

我的这个文件夹就是 E:\ASproject\GitHub\Permission ,等会这个路径我们需要使用到。

在module里面的build文件最前面中加入 

apply plugin: 'maven'

然后

Android 从零开始打包module到Github上并作为远程maven仓库(附带遇到的一些问题)_第1张图片

uploadArchives {
    repositories.mavenDeployer {
        def mavenDirPath = file('E:\\ASproject\\GitHub\\Permission') 
        repository(url:"file://${mavenDirPath.absolutePath}") 
        pom.project {
            groupId "com.github.hl"
            artifactId "permission"
            version "1.0.0" 
        }
    }

就这段话,file后面就是刚刚新建的本地文件夹地址,url后面必须是双引号,至于pom.project里面的三个参数随便写,但最终使用的,就是你写的这三个参数,一般是 包名,库名,版本号,引用的时候,就是 

implementation 'com.github.hl:permission:1.0.0'

这样就配置完了

然后运行 编译,在AS的Terminal中输入gradlew :Permission:uploadArchives,这个Permission就是我的module名字,这个uploadArchives,就是刚刚在build里面配置的,按回车运行,对了,这个module不能混淆,不然最后aar里面的class.jar包为空

Android 从零开始打包module到Github上并作为远程maven仓库(附带遇到的一些问题)_第2张图片

但,居然给我报这个错误

Android 从零开始打包module到Github上并作为远程maven仓库(附带遇到的一些问题)_第3张图片

Could not resolve com.android.tools.build:gradle:3.0.1.

我把整个项目生成apk都没抱这个错误,现在居然给我报这个,没办法,在根目录的build的里面加一句

maven{
    url "http://maven.aliyun.com/nexus/content/groups/public/"
}

Android 从零开始打包module到Github上并作为远程maven仓库(附带遇到的一些问题)_第4张图片

心想这下应该没问题了,继续gradlew :Permission:uploadArchives

果然,程序继续往下编译,还下载了一些东西,看来马上要搞定了,

不出所料,又出新问题了,这次报的是

Could not find tools.jar. Please check that C:\Program Files\Java\jre1.8.0_121 contains a valid JDK installation.

我不是安装配置了jdk了么,怎么找不到了??

没办法,在根目录下的gradle.properties 里面 加了一句话

org.gradle.java.home=E:\\AndroidStudio\\jdk

Android 从零开始打包module到Github上并作为远程maven仓库(附带遇到的一些问题)_第5张图片

这个E:\\AndroidStudio\\jdk 就是本地安装jdk的地址,

继续gradlew :Permission:uploadArchives

这次没报错了 终于出现了successful了

Android 从零开始打包module到Github上并作为远程maven仓库(附带遇到的一些问题)_第6张图片

打开最开始新建的文件夹,

Android 从零开始打包module到Github上并作为远程maven仓库(附带遇到的一些问题)_第7张图片

可以看到 已经生成了maven文件,在1.0.0里面还有aar文件

最后,再把这个文件夹上传到GitHub上去

Android 从零开始打包module到Github上并作为远程maven仓库(附带遇到的一些问题)_第8张图片这时,看到最上面的链接了么?

https://github.com/shenmiliang/Permission 

拷贝下来,在你需要使用这个moudle的项目中,在他的根目录里加入

maven {
    url "https://raw.githubusercontent.com/shenmiliang/Permission/master"
}

这个https://raw.githubusercontent.com/shenmiliang/Permission/master ,就是刚刚拷贝的链接,把github.com替换成raw.githubusercontent.com,最后面加上/master ,/master代表分支,有别的分支,你也可以换上

Android 从零开始打包module到Github上并作为远程maven仓库(附带遇到的一些问题)_第9张图片

接着,在具体引用工程gradle文件加入

implementation 'com.github.hl:permission:1.0.0'

Android 从零开始打包module到Github上并作为远程maven仓库(附带遇到的一些问题)_第10张图片这个com.github.hl:permission:1.0.0 就是刚前面配置的那个,也可以使用com.github.hl:permission:+@aar,+@aar代表一直使用最新版本 

搞定!运行

Android 从零开始打包module到Github上并作为远程maven仓库(附带遇到的一些问题)_第11张图片可以看到 已经成功导入了~

 

 

在测试的时候,有些module写错了,更新后上传后,居然还是用错误的,这是因为本地有了缓存,在

C:\Users\lynnhuang\.gradle\caches\transforms-1\files-1.1  本地的这个地址下删除后,结果再次运行还是原来的demo,还需要在本地的这两个地址下删除

C:\Users\lynnhuang\.gradle\caches\modules-2\files-2.1

C:\Users\lynnhuang\.gradle\caches\modules-2\metadata-2.23\descriptors

(这三个地方,第一个显示的事module名,第二个跟第三个显示的是包名)

你可能感兴趣的:(Android 从零开始打包module到Github上并作为远程maven仓库(附带遇到的一些问题))