阅读 67

用Maven搭建私有化Android管理库

一、前言

       随着项目的增大,开发人员的增多,会出现很多问题,比如功能模块耦合严重,构建速度慢....,我们一般都是通过组件化(按功能拆分出各种组件,数据存储、网络层、日志,每个组件可以是一个单独的module )、插件化(一个业务一个工程,每个业务独立编译并运行,更多自己度娘吧)等等去解决这些问题,

      那么问题来了,我们如何管理这些组件插件类呢?这就是本篇要说的搭建私有maven库,

把比如工具类库或者某一个功能模块或者某一个插件,打包上传到maven里,这个maven库可以公司的内网服务器,别人要引用 直接引入即可。这样统一管理大大提高了我们的开发效率,和代码管理。

二、使用Nexus搭建 maven 私库

1、官网下载地址:www.sonatype.com/download-os…,选择自己系统对应的版本下载。

  

2、下载完解压出来,到这歌目录里执行前两条命令即可开启服务。

  • 运行nexus.bat install命令安装nexus
  • 运行nexus.bat start命令启动nexus
  • nexus.bat stop停止 nexus.bat restart重启 nexus.bat uninstall卸载

C:\Tools\nexus-3.12.1-01-win64\nexus-3.12.1-01\bin

注意:cmd要以管理员权限运行,否则会失败。

3、在浏览器打开

http://localhost:8081,即可看到管理页面,默认账号admin 密码 admin123点击登录


这里的仓库分了四种类型:
  hosted(宿主仓库):用来部署自己,第三方或者公共仓库的构件
  proxy(代理仓库):代理远程仓库
  virtual(虚拟仓库):默认提供了一个 Central M1虚拟仓库 用来将maven 2适配为maven 1
  group(仓库组):统一管理多个仓库

  名词解释:
  Public Repositories: 仓库组
  3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库
  
Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库
  
Central:
用来代理maven中央仓库中发布版本构件的仓库
  Central M1 shadow: 用于提供中央仓库中M1格式的发布版本的构件镜像仓库
  Codehaus Snapshots: 用来代理
  
CodehausMaven 仓库的快照版本构件的仓库
  
Releases:
用来部署管理内部的发布版本构件的宿主类型仓库
  Snapshots:用来部署管理内部的快照版本构件的宿主类型仓库

4、创建仓库


如果该仓库有多次部署的情况的话,将policy设置为allow redeploy,不然后续在部署的时候会出现403错误。


创建成功之后 copy下 下边圈起来的URL,用于代码上传的配置


三、上传库到Maven仓库

上传之前要先build项目生成aar文件(在build目录下)

1、在主项目的gradle.properties里添加

#Maven仓库的URL
MAVEN_REPO_RELEASE_URL=http://localhost:8081/repository/ytg/
MAVEN_REPO_SNAPSHOT_URL=http://localhost:8081/repository/ytg/

#对应maven的GroupId的值
GROUP =ytg
#登录nexus ossde的用户名
NEXUS_USERNAME=admin
#登录nexus oss的密码
NEXUS_PASSWORD=admin123
# groupid (最终你引用时的名字)
GROUP_ID =ytg
# type
TYPE = aar
# description
DESCRIPTION = p_common复制代码


2、在module得build.gradlese文件里添加

apply plugin: 'maven'
uploadArchives {
    configuration = configurations.archives
    repositories {
        mavenDeployer {
            snapshotRepository(url: MAVEN_REPO_SNAPSHOT_URL) {
                authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
            }
            repository(url: MAVEN_REPO_RELEASE_URL) {
                authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
            }
            pom.project {
                //版本,有更新时修改版本号,再上传
                version '1.0.0'
                //名字
                artifactId 'p_common'
                groupId GROUP_ID
                packaging TYPE
                description DESCRIPTION
            }
        }
    }
}
artifacts {
    archives file('p_common.aar')//生成的aar 的名字
}
复制代码

3、上传


4、去仓库查看到刚刚上传的库文件


四、使用

1、在主项目里的build.gradles里配置

allprojects {
    repositories {
        google()
        jcenter()
        maven{
            url 'http://localhost:8081/repository/ytg/' //刚才copy出来的url
        }
    }
}复制代码

2、implementation 'ytg:p_common:1.0.0'

至此配置就算结束了,就可以在Android项目中应用刚刚上传的Maven库文件了。

喜欢就关注下边公众号吧 会有更过优质资源等你阅读!



关注下面的标签,发现更多相似文章
评论