登录

nexus 服务起来以后,我们在浏览器中输入对应的地址,就会看到 nexus 欢迎页,如图:
CentOS 初体验十七:Nexus发布仓库和引用_nexus

点击 Sign in 登录nexus , nexus 默认登录的用户名是 admin ,默认密码是 admin123

admin 登录的用户拥有最高权限, 在实际的开发中,我们不可能让所有用户都拥有最高权限,这是非常危险的,所以我们需要添加子用户,然后给子用户分配合理的权限,就能保证整个 nexus 的安全性。

添加用户

如图所示,依次按顺序选择,最后点击 Create local user .

CentOS 初体验十七:Nexus发布仓库和引用_android_02

创建新用户需要填写一些信息,都特别简单,这里不多说。创建完成后,退出 admin 用户,用新用户的账号登录。

添加仓库

如下图依次点击,创建新的仓库。
CentOS 初体验十七:Nexus发布仓库和引用_zhaoyanjun_03
选择 Maven2(hosted)

CentOS 初体验十七:Nexus发布仓库和引用_android nexus_04
这里简单介绍下几种 repository的类型:

  • hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。
  • proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
  • group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。

依次填写相关信息
CentOS 初体验十七:Nexus发布仓库和引用_nexus_05

  • Repository Policy属性,指定仓库的发布类型有 SnapshotReleaseMixed三种,这里我们选择 Release
    CentOS 初体验十七:Nexus发布仓库和引用_android nexus_06
  • Deployment Policy属性,默认是Disable Redeploy,也就是不允许部署,如果需要部署则需要改为Allow Redeploy,不然项目发布时会报错
    CentOS 初体验十七:Nexus发布仓库和引用_zhaoyanjun_07

仓库创建完成,就可以看到仓库的基本信息了
CentOS 初体验十七:Nexus发布仓库和引用_android nexus_08
仓库的 Url 是http://47.94.230.26:8084/repository/alibaba/ , 这个url 非常重要,后面我们上次代码,下拉仓库代码都需要。

CentOS 初体验十七:Nexus发布仓库和引用_nexus_09

AndroidStudio 项目发布

新建 Android Library 项目,我起名叫 Lib .

1、在其 build.gradle 文件头部添加 maven 插件

apply plugin: 'maven'

效果如图:
CentOS 初体验十七:Nexus发布仓库和引用_nexus_10

2、在其 build.gradle 文件尾部定义上传的行为

//定义上传的行为
uploadArchives{
    repositories.mavenDeployer {
        repository(url: "http://47.94.230.26:8084/repository/alibaba/") {
            authentication(userName: "zhaoyanjun", password: "123456")
        }
        pom.project {
            version '1.0.0' //版本号
            artifactId 'AndroidAnimation' //库名字,比如:Android动画
            groupId "com.alibaba.lib"  //组名,比如:阿里巴巴公司的android组
            description '这是一个描述信息,可有可无'
        }
    }
}

效果如下:

CentOS 初体验十七:Nexus发布仓库和引用_android_11

3、开始发布
双击运行 uploadArchives 任务,发布项目
CentOS 初体验十七:Nexus发布仓库和引用_android_12

4、查看项目
发布完成后,可以回到 nexus后台,查看发布结果
CentOS 初体验十七:Nexus发布仓库和引用_android_13

点击 alibaba 仓库
CentOS 初体验十七:Nexus发布仓库和引用_centos_14

可见项目已经成功发布到 nexus 仓库中。

AndroidStudio 项目引用

那么项目发了完后,我们怎么引用呢?首先在项目的根目录的 build.gradle,添加 maven 的下载地址:

maven{
     url "http://47.94.230.26:8084/repository/alibaba/"  //仓库地址
    }

效果如下
CentOS 初体验十七:Nexus发布仓库和引用_android nexus_15
然后在 app module 下的 build.gradle 文件添加项目依赖

compile 'com.alibaba.lib:AndroidAnimation:1.0.0'

CentOS 初体验十七:Nexus发布仓库和引用_nexus_16

到这里我们已经成功的将仓库引入到我们的Android项目中。