使用github搭建Maven仓库

2018-07-27  本文已影响104人  DDstar

随便巴拉凑字数

之前写了一篇使用nexus搭建私人maven仓库的博客(然鹅还没好),那时候几句话就弄好了真的好激动啊,噼里啪啦把自己的一些库往上加,提交,完美,还好开心写了一篇博客记录下来了,写完泡了一杯茶,松松喝一口,感觉世界是多么的美好。

开心就好

有一天,公司突然有个功能,似曾相识,哦对,前几天刚搞上去的库里面有,心里窃喜,赶紧博客开出来,代码一顿拷贝,当看到localhost我好像意识到了什么。。。没错,那个是本地环境啊,我那个nexu仓库提交的在家里的电脑呢,逗我呢这里怎么可能拿的到。。。


一夜回到解放前

好了,凑字数结束


那有没有啥方法可以一个地方提交到处可以玩呢?当然是有哇,不然网上开源项目咋就一句话依赖就能用的呢。之前看了一个jcenter仓库,为了提交一个项目上去,要申请好多的东西,而且一路专业英文,好像看了一篇是英文的教程,看完我觉得自己被英文字母淹死了,这个门槛相对较高,当然大佬大屌们应该是轻松容易看懂的,像我这种渣渣英文,望而却步了。今天研究了几篇文章,说是可以用github来作为maven仓库的,看了看,效果还不错,我就自己实践下,顺便优化了一丢丢,我也来讲讲吧。

乖乖听吹*

开始动手搞起来

我们创建一个maven仓库是为了提交我们积累的aar库,而且这个库可能还会一直更新维护添加,所以我们希望到处可添加,到处可测试,到处可修改,到处可维护(当然到处指的是你自己到处可以操作,不是别人也可以到处操作),所以我们希望github上面的仓库不仅仅只是单一存aar文件相关,还包含源码,包含测试用的app源码,那怎么办?把项目跟源码都提交上去咯,依赖的话只是依赖到maven仓库里面的aar文件而已,所以最后的github仓库的目录是酱紫的


最后github目录

接下来开始动手了

apply plugin: 'maven'
uploadArchives {
    repositories.mavenDeployer {
        //maven 本地文件地址
        def mavenLib = file(getProperty('mavenPath'))
        repository(url: "file://${mavenLib.absolutePath}")
        pom.project {
            version android.defaultConfig.versionName
            groupId GROUDID
            artifactId ARTIFACTID
        }
    }

}

注意,以上代码跟android目录同级别
在项目的gradle.properties文件里面添加参数配置(其实也可以直接在上面的代码里面直接添加,这就像安卓布局里面直接写文字跟配置在string资源里面一样)

mavenPath = ..
GROUDID=com.ddstar
ARTIFACTID = maveLib

啰嗦两句,mavenPath 这个名字随便写,记得在第二步的 file(getProperty('mavenPath'))配置相对应的参数名就好了,两个.. 表示在项目的最外层目录,groupId 跟artifactId 配置后的结果就是最后面我们需要依赖的目录为groupId:artifactId:version的形式,我这边就是com.ddstar:maveLib:1.0(最后面版本号看项目的版本名字配置)
以上配置结束,同步一下,如下图就会出现


生成提交仓库文件配置
BUILD SUCCESSFUL in 0s
25 actionable tasks: 1 executed, 24 up-to-date
16:29:40: Task execution finished 'uploadArchives'.
成功生成仓库文件

仓库依赖

上面是将aar库文件生成的Maven残酷提交到github,接下来是怎么依赖

https://raw.githubusercontent.com/{username}/{projeceName}/{branch}
|
|
我们的-->https://raw.githubusercontent.com/DDStar/GithubMavenDemo/master
allprojects {
    repositories {
        google()
        jcenter()
        maven{//添加以下配置
            url 'https://raw.githubusercontent.com/DDStar/GithubMavenDemo/master'
        }
    }
    implementation 'com.ddstar:maveLib:1.0'

同步下依赖成功以后,就可以调用库里面的代码了


最后条用成功代码

最后注意

注意1
我们是使用git管理代码的,所有生成的那个maven仓库文件目录最好不要随意删除,不然这次新生成一个版本,本地把之前的版本都删掉,提交代码以后github上面的以前版本都会被删掉,这样造成依赖之前版本的项目都会有问题(开发的时候)
注意2
aar库module里面最好只保留项目相关的东西。我第一次提交是包含androidtest和test目录,提交完测试项目依赖的话就依赖不了,可能是测试项目也有依赖的缘故,这个还不是很确定
注意3
每次提交新版本都改一下版本名,才会提交新的版本,不然会覆盖原来旧版

结束的字体要比其他的大,下课

顶~叮~叮
上一篇下一篇

猜你喜欢

热点阅读