62

用Maven搭建私有化Android管理库

 5 years ago
source link: http://www.10tiao.com/html/272/201807/2666454231/1.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

一、前言

       随着项目的增大,开发人员的增多,会出现很多问题,比如功能模块耦合严重,构建速度慢....,我们一般都是通过组件化(按功能拆分出各种组件,数据存储、网络层、日志,每个组件可以是一个单独的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仓库的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、上传


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

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


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




About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK