前言

  之前简单说了下Maven的搭建,现在跟大家说一下如何将自己的aar传到我们新搭建的maven仓库里面,接下来我们就从最基本的新建一个library开始讲述整个流程,话不多说,让我们把愉快的开始吧。

  准备工作

  首先,开始之前,你需要新建一个library,打开你的Android studio ,选择File -> New -> New Module:

  接下来选择Android Library:

  然后写上你的需要开源的代码,之后便是重点了-配置项目

  本地AAR

  项目配置分两种,一种是直接打出本地的aar包并指定路径,另外一种是将打出的aar包上传到我们搭建的本地的maven仓库里面

  打出aar到本地

  你需要在你的library的build.gradle里面去配置这样的代码

  切记,一定不要忘记添加:apply plugin: 'maven'

  其中各参数代表的意义如下:

   repository:代表本地的相对路径,这里我写的意思是当前module的上一层目录新建一个名为repository的文件夹,生成的aar会放到这个路径下面

  pom.groupId:代表唯一标识(可以任意,不过一般都是模块包名)

  pom.artifactId: 项目名称(可以任意,不过一般为类库模块名称)

  pom.version:库的版本号

  然后我点击右上角的Sync now按钮同步一下代码,之后你会在你的右侧的gradle菜单里面的你对应的module下面的Task下面出现了一个名为upload的文件夹,下面会有一个名为uploadArchives的task:

  之后只要双击执行一下uploadArchives这个任务就会在对应的目录下生成我们需要的aar了,具体如下截图:

  其中红色标注的就是我们打出来的aar文件

  接下来就是在项目中引用使用我们打出来的aar了

  使用本地AAR

  使用的时候需要在我们使用的module的build.gradle里面我们aar的路径:

  一般是文件的绝对路径,只需引用到我们在生成aar的时候传递的那层路径就行,在这里即是repository,然后你就可以像正常的引用jcenter中的库一样引用你打出来的aar库了:

  引用的各段参数形式是如下:

  implementation 'groupId:artifactId:version' 对照关系如下图:

  本地AAR引用结果

  至此,引用结束,让我们来看下一下引用的效果吧:

  

  提交到本地Maven仓库AAR

  刚才讲述了如何配置项目打出本地的aar,并且如何引用本地的aar,以及个引用参数的含义,接下来讲述一下如何配置项目将打出的aar上传到aar仓库里面

  上传配置

  各参数含义与本地打包aar基本一致,但是多了一个配置maven用户名密码的选项authentication,而url也替换了了的maven的地址,我们替换的maven的地址是这样的:http://localhost:8081/repository/maven-releases/,其中localhost:8081标识是服务器地址,maven-releases仓库分组的名称。

  最后再双击uploadArchives这个task就可以上传我们的库到maven仓库了,那我们赶紧去看看maven仓库里我们的库是什么样子吧; 查看方式上一篇文章《Maven系列(一) -- maven仓库的搭建》一文已经说过,在浏览器中输入"localhost:8081"会看到你的maven仓库的后台,然后点击Browse:

  因为我们是上传到maven-release分组下面了,所以点击release就可以看到我们的上传的库的版本列表:

  如截图红框所示,这就是其中一个版本的所有文件,包括aar文件、aar的md5文件、aar的签名文件、pom文件、pom文件的md5文件、pom文件的签名文件等

  使用Maven AAR

  与引用本地aar的形式一样,第一步需要在使用方的module下面的build.gradle文件里修改maven的url为我们的maven仓库里库的地址:

  也即是我们上传本地的库倒排maven仓库时候填写的url地址,具体引用库的方式和引用本地的aar文件一样:

  Maven仓库引用结果

  因为代码一样,当然运行效果也是一样的:

  完结

  至此,我们讲了两种封装开源库的方式,一种是不太友好的本地aar的形式,第二种是上传到maven私服仓库里面,这样一整个项目组或者公司内部就可以用这个库了,减少代码开发量,方便维护。

  之后还会将如何将自己的开源库上传到谷歌的jcenter仓库中,让更多人使用你的开源库,请持续关注,敬请期待哈

  如要转载,请注明出处,谢谢!   

  欢迎关注我的博客,地址如下:   

  博客园地址:www.cnblogs.com/zhengjunfei…   

  简书地址:www.jianshu.com/u/da06e00ed…

  掘金地址:juejin.im/user/5a2a55…

  欢迎大家扫描关注我的微信公众号,我会定期发布一些博客,分享一些知识点

Maven系列(二) -- 将开源库上传到maven仓库私服的更多相关文章

  1. 实战maven私有仓库三部曲之二:上传到私有仓库

    在上一章<实战maven私有仓库三部曲之一:搭建和使用>我们搭建了maven私有仓库,并体验了私有仓库缓存jar包的能力,避免了局域网内开发人员去远程中央仓库下载的痛苦等待,本章我们再来体 ...

  2. unity打成aar上传到maven库的工具

    需求: 把unity打成aar并上传到maven库 其实就是把前两个博客整合了一下 unity打aar包工具 aar上传maven库工具 这里先说eclipse版的 package com.jinke ...

  3. maven(私库)上传jar包

    在实际开发过程中,我们经常会遇到需要引用的jar依赖,在我们公司的maven仓库不存在,这个时候我们就需要把jar上传上去,在项目中添加对应依赖就OK了. 步骤1:下载jar 在http://mvnr ...

  4. 清晰的教你如何将 Maven 项目上传至 中央仓库以及版本更新

    项目中总会依赖一些大牛的开源库,例如 Android 开发 通过以下方式就可以方便的引入库.那么如何将我们自己的库也能这样来使用呢?下面我们将详细的讲解每一步的过程: implementation ' ...

  5. Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):4、Maven项目转换与pom.xml配置

    文章目录: Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):1.JIRA账号注册 Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):2.PGP ...

  6. Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):5、Maven版本发布与后续版本更新(大结局)

    文章目录: Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):1.JIRA账号注册 Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):2.PGP ...

  7. Maven第四篇【私有仓库、上传jar包、引用私服jar包、上传本地项目到私服】

    搭建私有服务器 前面已经说过了,我们使用Maven的使用,如果需要导入相对应的jar包,Maven首先会在我们的本地仓库中寻找->私有仓库->中心仓库- 然而,我们的本地仓库常常没有想要的 ...

  8. 用eclipse怎样将本地的项目打成jar包上传到maven仓库

    使用maven的项目中,有时需要把本地的项目打成jar包上传到mevan仓库. 操作如下: 前提:pom文件中配置好远程库的地址,否则会报错 1.将maven 中的settings文件配置好用户名和密 ...

  9. JavaWeb学习 (二十八)————文件上传和下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

随机推荐

  1. 数学--数论--随机算法--Pollard Rho 大数分解算法 (带输出版本)

    RhoPollard Rho是一个著名的大数质因数分解算法,它的实现基于一个神奇的算法:MillerRabinMillerRabin素数测试. 操作流程 首先,我们先用MillerRabinMille ...

  2. HDU-1857 畅通工程再续

    畅通工程再续 Problem Description 相信大家都听说一个"百岛湖"的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府决定 ...

  3. Mariadb 主主复制

    两台server1  192.168.1.189 &&  server2 192.168.1.226 安装mariadb数据库 yum -y install mariadb maria ...

  4. 【摘抄】深入解析Windows操作系统

    一.线程是一个进程内部的实体,也是Windows执行此进程时的调度实体.若没有线程,进程的程序将不可能运行.线程包含以下部件: 1.一组代表处理器状态的CPU寄存器中的内容. 2.两个栈:一个用于线程 ...

  5. go 模板详说

    模板是我们常用的手段用于动态生成页面,或者用于代码生成器的编写等.比如把数据库的表映射成go语言的struct,这些体力活,写个代码生成器是最合适不过的了. 示例例把表转成 struct : 当然这篇 ...

  6. Linux之《荒岛余生》(一)准备篇

    xin片之争,已经暴露了中国xin的问题,我等码农束手无策:而在操作系统方面,成果也是乏善可陈:现如今酷炫的Web监控工具,让很多研发丧失了真正处理问题的能力. 越接近底层,就越接近真相,在计算机的世 ...

  7. ES[7.6.x]学习笔记(七)IK中文分词器

    在上一节中,我们给大家介绍了ES的分析器,我相信大家对ES的全文搜索已经有了深刻的印象.分析器包含3个部分:字符过滤器.分词器.分词过滤器.在上一节的例子,大家发现了,都是英文的例子,是吧?因为ES是 ...

  8. Spring Boot 集成 Flyway 实现数据库版本控制

    在项目迭代开发中,难免会有更新数据库 Schema 的情况,比如添加新表.在表中增加字段或者删除字段等,那么当我对数据库进行一系列操作后,如何快速地在其他同事的电脑上同步?如何在测试/生产服务器上快速 ...

  9. 在web中使用shiro(会话管理,登出,shiro标签库的使用)

    在shiro的主配置文件中配置,登出的请求经过的过滤器就可以了,在shiro的过滤器中有一个名称为logout的过滤 器专门为我们处理登出请求: 一.shiro会话管理器 shiro中也提供了类似于w ...

  10. 技术人的福音!教你如何使用Typora+PicGo实现图片自动上传功能

    前言 写技术文章的小伙伴,对于 Typora 肯定不陌生,用来编写 Markdown 特别的方便. 但是,有个问题,就是当我们插入一个图片,并且使之可以在公网访问时,操作流程特别的麻烦. 首先,你需要 ...