使用Nexus搭建Maven私服并管理模块、组件版本

一、软件下载

nexus-3.11.0-01-win64下载解压

image.png

jdk-8u171-windows-x64.exe下载并配置环境变量

image.png

二、搭建

1、nexus3是免安装的,解压到指定目录

image.png

2、修改nexus-3.11.0-01-win64\nexus-3.11.0-01\etc\nexus-default.properties文件

image.png

指定访问路径和端口号

image.png

3、在nexus-3.11.0-01-win64\nexus-3.11.0-01\bin下,Shift+右键 在此处打开命令窗口,输入
nexus.exe/run
启动服务,如下图
image.png

安装为服务(可选)
nexus.exe/install #安装
nexus.exe/start #开始
nexus.exe/stop #结束
nexus.exe/uninstall #卸载
其中为服务的名称,可自定义,可为空

4、浏览器输入http://127.0.0.1:8081/或http://localhost:8081/,右上角登陆,初始账号 admin 密码 admin123 。

image.png

5、创建仓库

image.png

Nexus仓库分类

image.png

Maven可以直接从宿主仓库下载构件;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

image.png

六、把代理仓库整合到一个仓库组

仓库组的作用就是只需要依赖于一个group,便能使用所有该group包含的仓库的内容。


image.png

问题

1、引用aar时找不到arr的远程依赖库
如果arr文件中包含远程依赖,在引入时选择不带@arr的方式,是否有远程依赖可以查看.pom文件


image.png

你可能感兴趣的:(使用Nexus搭建Maven私服并管理模块、组件版本)