用Maven搭建私有化Android管理库

一、前言

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

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

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

二、使用Nexus搭建 maven 私库

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

  640?wx_fmt=other

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点击登录

640?wx_fmt=other

这里的仓库分了四种类型:
  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、创建仓库

640?wx_fmt=other

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

640?wx_fmt=other

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

640?wx_fmt=other

三、上传库到Maven仓库

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

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

#Maven仓库的URLMAVEN_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# typeTYPE = aar# descriptionDESCRIPTION = 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、上传

640?wx_fmt=other

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

640?wx_fmt=other

四、使用

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库文件了。

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

                        喜欢 就关注吧,欢迎投稿!

640?wx_fmt=jpeg

本网站文章均为原创内容,并可随意转载,但请标明本文链接
如有任何疑问可在文章底部留言。为了防止恶意评论,本博客现已开启留言审核功能。但是博主会在后台第一时间看到您的留言,并会在第一时间对您的留言进行回复!欢迎交流!
本文链接: https://leetcode.jp/用maven搭建私有化android管理库/

此条目发表在Android分类目录。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。