美文网首页
使用github搭建Maven仓库

使用github搭建Maven仓库

作者: DDstar | 来源:发表于2018-07-27 17:04 被阅读104次

    随便巴拉凑字数

    之前写了一篇使用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
    每次提交新版本都改一下版本名,才会提交新的版本,不然会覆盖原来旧版

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

    顶~叮~叮

    相关文章

      网友评论

          本文标题:使用github搭建Maven仓库

          本文链接:https://www.haomeiwen.com/subject/eevwmftx.html