一、前言
随着项目的增大,开发人员的增多,会出现很多问题,比如功能模块耦合严重,构建速度慢….,我们一般都是通过组件化(按功能拆分出各种组件,数据存储、网络层、日志,每个组件可以是一个单独的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库文件了。
喜欢就关注下边公众号吧 会有更过优质资源等你阅读!
喜欢 就关注吧,欢迎投稿!
如有任何疑问可在文章底部留言。为了防止恶意评论,本博客现已开启留言审核功能。但是博主会在后台第一时间看到您的留言,并会在第一时间对您的留言进行回复!欢迎交流!
本文链接: https://leetcode.jp/用maven搭建私有化android管理库/