相信从事于Java或Android开发的朋友们对于Gradle Maven仓库并不会感到陌生,得益于强大的开源力量,搭建本地私服变得容易了很多。本文简单记录关于Sonatype Nexus管理工具的搭建,便于记忆。

本文基于windows环境下对Nexus(Nexus Repository Manager) 3.15.2版本的搭建,下载链接访问官网自行下载。

一、搭建Nexus

下载压缩包解压至合适的目录。

本文为:F:\Programs\nexus-3.15.2-01
再次强调:作为开发者应避免目录含有中文字符或空格符

管理员身份运行“命令提示符”windows命令窗口

命令进入nexus的执行目录“bin”:

  1. 先切入nexus文件所在的盘符,本文为F盘
C:\WINDOWS\system32>F:
  1. 再进入“bin”目录
F:\>cd Programs\nexus-3.15.2-01\bin

命令安装nexus服务

F:\Programs\nexus-3.15.2-01\bin>nexus.exe/install
  • 成功则提示:
Installed service 'nexus'.
  • 如果此前已安装好则提示:
Service is already stopped.
Installed service 'nexus'.

没关系,只是自动停止并覆盖安装该服务。

  • 如果提示:
Could not open SCManager.

很大原因说明你没有以管理员身份运行命令提示符窗口或者没有获取到管理员权限。

开启服务

F:\Programs\nexus-3.15.2-01\bin>nexus.exe/start
  • 成功则提示:
Starting service 'nexus'.

表示服务正在开启,注意:开启成功并不会给提示的,等待几秒后就可以享用你的安装成果了。

关闭服务

F:\Programs\nexus-3.15.2-01\bin>nexus.exe/stop

成功则提示:

Stopping service 'nexus'.
Service stopped

二、创建Maven仓库

nexus服务开启后会自动创建用户为:admin,密码为:admin123的管理员账号。服务访问端口为:8081

  1. 打开浏览器访问nexus服务web端,输入地址为:“ip地址:8081”,本地可直接输入localhost:8081
  2. 点击web页面右上角“Sign in”登录按钮,输入上文所述账号即可登录。
  3. 登录后,按下图箭头顺序点击按钮

gradle 仓库密码加密 gradle配置nexus仓库_gradle 仓库密码加密

到选择创建仓库界面

gradle 仓库密码加密 gradle配置nexus仓库_上传_02

多种类型仓库供我们选择,其中包括Maven类型,Nexus提供创建三种类型的Maven仓库,这里我们选择比较简单的“maven2 (hosted)”。

填写仓库名,简单起见其它项保持默认即可,创建仓库

gradle 仓库密码加密 gradle配置nexus仓库_依赖库_03

创建完成后,会自动返回上一页到已创建的仓库列表界面,最下方会列出刚刚创建的“Test”仓库一栏,然后点击此栏上的“copy”按钮即可复制该仓库的链接url,本文为:http://localhost:8081/repository/Test/

三、代码库上传

配置上传gradle脚本

在依赖Module项目下的build.gradle文件上编辑以下脚本(以CySwitch为例):

apply plugin: 'maven'

uploadArchives {
    repositories {
        mavenDeployer {
            //仓库地址
            repository(url: "http://localhost:8081/repository/Test/") {
                // 验证账号,即nexus服务管理账号
                authentication(userName: "admin", password: "admin123")
            }
            pom.groupId = 'cn.icheny.view' // 组织id,一般习惯用包名标识
            pom.artifactId = 'CySwitch' // 项目名
            pom.version = '1.0.2' //发布版本号

            // 下面内容可选,需要描述许可证的情况下
            pom.project {
                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }
            }
        }
    }
}

执行脚本任务

配置完毕后,Snyc一下,在Gradle的界面模块会出现“upload–>uploadArchives”任务,双击即可执行编译上传任务:

gradle 仓库密码加密 gradle配置nexus仓库_Test_04

获取依赖库远程依赖脚本

  1. 任务执行完毕后,回到浏览器,按下图操作:

gradle 仓库密码加密 gradle配置nexus仓库_上传_05

  1. 双击“Test”仓库这一栏,就可以看到上传的依赖库了。这时候点击依赖库的版本号,右边就会出现当前依赖库的管理功能模块。

gradle 仓库密码加密 gradle配置nexus仓库_上传_06

眼尖的童鞋应该很快就能看到右下方熟悉的信息,远程依赖脚本:

implementation 'cn.icheny.view:CySwitch:1.0.2'

脚本上方有个“copy”按钮,可直接复制脚本。

四、远程依赖

本来写到上方就算结束了,但是为了防止童鞋们在使用远程依赖遇到问题,这里还是说一下吧。

配置远程仓库地址

在Project下的build.gradle中添加仓库地址:

allprojects {
    repositories {
        ......
        // 添加Nexus maven仓库地址
        maven { url "http://localhost:8081/repository/Test/" }
    }
}

配置依赖脚本

这一步大家都知道,在需要依赖的Module下的build.gradle中添加依赖脚本:

dependencies {
    ......
    implementation 'cn.icheny.view:CySwitch:1.0.2'
}

至此,本文全部结束,希望能给同行朋友们带来一些帮助。