使用Nexus搭建Maven私服并管理模块、组件版本
2018-05-18 本文已影响0人
channelRead0
一、软件下载
image.pngjdk-8u171-windows-x64.exe下载并配置环境变量 image.png
二、搭建
1、nexus3是免安装的,解压到指定目录
image.png2、修改nexus-3.11.0-01-win64\nexus-3.11.0-01\etc\nexus-default.properties文件
image.png指定访问路径和端口号
image.png3、在nexus-3.11.0-01-win64\nexus-3.11.0-01\bin下,Shift+右键 在此处打开命令窗口,输入
nexus.exe/run
启动服务,如下图
image.png
安装为服务(可选)
nexus.exe/install <optional-service-name>
#安装nexus.exe/start <optional-service-name>
#开始nexus.exe/stop <optional-service-name>
#结束nexus.exe/uninstall <optional-service-name>
#卸载其中<optional-service-name>为服务的名称,可自定义,可为空
4、浏览器输入http://127.0.0.1:8081/或http://localhost:8081/,右上角登陆,初始账号 admin 密码 admin123 。
image.png5、创建仓库
image.pngNexus仓库分类
image.pngMaven可以直接从宿主仓库下载构件;Maven也可以从代理仓库下载构件,而代理仓库会间接地从远程仓库下载并缓存构件;
三、组件上传
1、在 build.gradle 添加添加一句
apply plugin: 'maven'
并在底部添加以下代码
uploadArchives {
repositories {
mavenDeployer {
repository(url: "http://127.0.0.1:8081/repository/basiclib/") {
authentication(userName: "admin", password: "admin123") //账号,密码
}
pom.project {
version '1.0.0'
artifactId 'basiclib-release'
groupId 'com.dssaw'
description 'dependences lib'
}
}
}
}
2、打开Android Studio终端Terminal输入
gradlew uploadArchives
或右上角点Gradle,选择模块下Tasks->upload->uploadArchives
四、依赖组件
在app模块的build.gradle中添加
android {
...
allprojects {
repositories {
jcenter()
maven {
url 'http://127.0.0.1:8081/repository/basiclib/' //仓库地址
}
}
}
...
}
dependencies {
...
// implementation project(':basiclib')
//implementation 'com.dssaw:basiclib-release:1.0.0@aar' //此方式适合没有远程依赖的引入
implementation 'com.dssaw:basiclib-release:1.0.0' //此引入方式适合有远程依赖的资源
}
五、创建代理仓库
https://dl.google.com/dl/android/maven2/
- google() : https://dl.google.com/dl/android/maven2/
- mavenCentral() : https://repo1.maven.org/maven2/
- jcenter() : http://jcenter.bintray.com/
- jitpack: https://jitpack.io/
image.png
image.png
六、把代理仓库整合到一个仓库组
仓库组的作用就是只需要依赖于一个group,便能使用所有该group包含的仓库的内容。
image.png
问题
1、引用aar时找不到arr的远程依赖库
如果arr文件中包含远程依赖,在引入时选择不带@arr的方式,是否有远程依赖可以查看.pom文件
image.png