使用github搭建Maven仓库

随便巴拉凑字数

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

开心就好

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


一夜回到解放前

好了,凑字数结束


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

乖乖听吹*

开始动手搞起来

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


最后github目录

接下来开始动手了

  • 创建一个简单的安卓项目(略)

  • 创建一个module安卓库作为要提交的aar库(略)

  • github创建一个仓库(略)

  • github仓库与刚才创建的安卓项目建立关联(略)
    以上都只是写简单的步骤,连拿来凑字数都不想敲(懒),接下来是重点了,后面的同学醒醒,注意听。


    划重点,期末必考
  • step1 在库module的build.gradle文件里面添加

apply plugin: 'maven'
  • step 2 仓库提交的配置
    首先要在本地生成相关文件,同样在库module的build.gradle文件里面添加
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(最后面版本号看项目的版本名字配置)
以上配置结束,同步一下,如下图就会出现


生成提交仓库文件配置
  • step3 生成aar文件 和提交仓库相关文件
    在需要生成aar的module里面添加一个简单测试类,并条件简单方法,生成aar文件,然后点击上图的uploadArchives,如果配置没错的话,会有如下日志,并再如下目录里能看到文件
BUILD SUCCESSFUL in 0s
25 actionable tasks: 1 executed, 24 up-to-date
16:29:40: Task execution finished 'uploadArchives'.
成功生成仓库文件
  • step4 提交到github
    刚才我们已经将该项目于github仓库关联,现在只要增加仓库文件所在整个目录就可以了,将仓库文件目录整个添加到github上,然后提交,push,之后能在浏览器上打开看到我们刚才添加的所有文件


    提交到github

    成功了一半了,休息下。。。


    看个剧吧

仓库依赖

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

  • step1 仓库地址
    仓库地址的格式是
https://raw.githubusercontent.com/{username}/{projeceName}/{branch}
|
|
我们的-->https://raw.githubusercontent.com/DDStar/GithubMavenDemo/master
  • step 2项目依赖
    在项目级别的build.gradle里面添加配置
allprojects {
    repositories {
        google()
        jcenter()
        maven{//添加以下配置
            url 'https://raw.githubusercontent.com/DDStar/GithubMavenDemo/master'
        }
    }
  • step3 测试项目依赖
    最后 再测试用的项目里面添加依赖
    implementation 'com.ddstar:maveLib:1.0'

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


最后条用成功代码

最后注意

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

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

顶~叮~叮
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,100评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,365评论 6 343
  • |-1-更新内容[6.从仓库解析依赖的机制(重要)] 1Maven仓库作用 仓库用来存储所有项目使用到构件,在ma...
    zlcook阅读 5,961评论 0 25
  • 【序】 婵娟舞明辰,清愁何以伸? 昨日忆长安,楼高惊春恨! 花凉褪茶寒,蝶冷隐风凄。 不过一盏酒,轻呷即浮生。 帘...
    萧瑶夕阅读 219评论 6 9
  • 每个人都到了开始规划自己未来的时候,其实很早以前就需要开始思考这个问题。但是每次都是一拖再拖,再加上知识匮乏和信息...
    年年廿阅读 218评论 0 0