Sonatype Nexus Repository Manager OSS仓库管理私服(四)——group仓库
在前两篇文章Sonatype Nexus Repository Manager OSS仓库管理私服(二)——仓库代理和Sonatype Nexus Repository Manager OSS仓库管理私服(三)——hosted仓库中我们分别介绍了proxy仓库和hosted仓库,今天我们要介绍如何创建group仓库
优点
group仓库顾名思义就是一组仓库的组合,也可以理解为同时代理多个仓库,这样我可以实现配置一个group仓库地址却可以同时使用多个仓库。
比如如下代码我们要同时使用多个仓库
buildscript {
repositories {
maven { url "http://localhost:8081/repository/maven-central/" }
maven { url "http://localhost:8081/repository/jcenter/" }
maven { url "http://localhost:8081/repository/google/" }
maven { url "http://localhost:8081/repository/maven-public/" }
}
}
假如我们创建了一个group仓库叫android-group-repo,同时包含了上面的四个仓库,那么我们只需配置一个仓库地址就可以同时使用上面四个仓库的内容,如下所示
buildscript {
repositories {
maven { url "http://localhost:8081/repository/android-group-repo/" }
}
}
创建
Nexus搭建成功后默认已帮我们创建了一个Maven group仓库,叫做maven-public,这个其实已经够用了,为了演示,我们再创建一个叫做android-group-repo的group仓库
首先点击Create repository按钮
然后选择maven2(group),因为我们要搭建的是maven仓库
在接下来的创建页面中的Name一项中填入我们的仓库名字android-group-repo
在Group-Member repositories中选择要包含在group仓库中的子仓库,还可以对子仓库进行排序,排在前的话,查询包的时候会先从排在前的仓库查询
最后点击底部的Create repository即可完成仓库的创建
可以看到我们选择的maven-public也是一个group仓库,所以group仓库中还可以包含其他group仓库
返回仓库列表即可看到我们新创建的group仓库android-group-repo
使用
在Android项目build.gradle中添加我们的代理仓库地址
buildscript {
repositories {
maven {
url "http://localhost:8081/repository/android-group-repo/"
}
}
}
然后在app module中就可以添加包的依赖,比如我们上传了一个包叫cn.himmy.mylib:mylib:1.0.0到maven-releases仓库中,由于我们创建的group仓库android-group-rep中包含了另一个group仓库maven-publc,而maven-public中又包含了maven-releases仓库,所以我们配置了android-group-rep仓库就可以依赖maven-releases仓库中的包
dependencies {
implementation 'cn.himmy.mylib:mylib:1.0.0'
}