Android Maven私有仓库搭建

一:什么是maven、gradle?
   Maven是一个项目管理和自动构建工具。
  Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件;Gradle 基于Groovy,build脚本使用Groovy编写。

Android支持的Maven仓库:
  mavenCentral 是最早的 maven 中央仓库
  jcenter 是 Android Studio 0.8 版本起的默认 maven 中央仓库
  本机的仓库
  部署在内网服务器的私有仓库
  
二、为什么需要搭建maven私有仓库?
  做java开发的同学对Maven一定不陌生;做android开发的同学,用得最多的是gradle。其实gradle的第三方库,也是放在maven仓库上。
  
  对于第三方库,大家基本都配置maven、gradle从远程获取,下载jar放在工程里(很少,或者是因为没有放在maven repository上的库,无奈只能这么干),这么做方便管理依赖。
  
关于app开发中遇到问题
对于小项目,开发团队几个人的体量,基本APP端只用一个人搞。随着业务扩展,代码量大大增加,开发人数也多了,需要协同开发,问题也就开始暴漏:功能模块耦合严重,一个修改影响范围大,构建速度慢…

比较常规的一些解决方法:
1.组件化,按功能拆分出各种组件,网络请求,数据存储、基础控件,日志等;
2.拆分业务,一个业务一个module;
3.业务插件化,一个业务一个工程,每个业务独立编译并运行…

因此,引入依赖管理是必不可少的。把各个模块单独编译,部署上maven仓库,主工程or业务工程通过maven、gradle引用这些依赖。
这么做的好处,就是持续集成!某个模块修改了,跑单元测试,通过后才放上仓库。业务工程同步一下maven,如果有问题,还可以在服务端回滚到上一个版本。

所以我们希望通过搭建一个私有maven仓库,来管理私有的库,来提高我们的开发效率。

三:Nexus搭建 maven 私服

Nexus是什么?
  Nexus是一个基于maven的仓库管理的社区项目。主要的使用场景就是可以在局域网搭建一个maven私服,用来部署第三方公共构件或者作为远程仓库在该局域网的一个代理。
  简单举几个例子就是:
  第三方Jar包可以放在nexus上,项目可以直接通过Url和路径配置直接引用.方便进行统一管理。
  同时有多个项目在开发的时候,一些共用基础模块可以单独抽取到nexus上,需要用的项目直接从nexus上拉取就行(基础模块的实现,维护和部署可以交给专门的人员,其他项目不用关心代码实现,这样也可以达到保证核心代码不泄露).
  封闭开发的过程中开发机是不能上公网的,所以连接central repository和下载jar就比较麻烦,这时就可以用nexus搭建起来一个介于公网和局域网之间的桥梁。

  1. 所需工具

    JDK 1.8以上MavenNexus OSS

  2. 安装Maven
    Mac在终端输入brew install nexus,如果提示没有brew命令,请先安装brew
    windows安装

  3. 安装成功
    启动nexus
    mac :brew services start nexus
    windows:进入安装包的解压路径"…\bin\jsw\windows-x86-64",根据自己的系统选择文件夹,
    运行nexus.bat install命令安装 nexus
    运行nexus.bat start命令启动 nexus
    运行nexus.bat stop停止 nexus
    运行nexus.bat restart重启 nexus
    运行nexus.bat uninstall卸载nexus

    启动后
    浏览器访问地址 http://127.0.0.1:8081/nexus
    mac使用此地址,可配置
    默认用户:admin 密码:admin123

  4. Maven配置
    参照这里

命令行执行 gradle uploadArchives
到此服务器上就能看到上传的库了

  1. android gradle中使用
allprojects {
    repositories {
        jcenter()
        mavenLocal()
        
        maven {
        //url 'file:///Users/apple/projects/maven/' //本地
            url 'http://127.0.0.1:9999/repository/cody/' //服务器
        }
    }
}

应用形式
在app build.gradle 添加
implementation groupId:artifactId:version
例如:
implementation “com.google.code.gson:gson:2.8.5”

//学习总结,待细节完善

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值