搭建基于nexus的android包管理私服

fu# NEXUS第三方maven框架简单搭建

安装

本文基于linux service系统安装,安装比较简单,点击这里进入官方下载网站。目前nexus分为2.X和3.X。

2.x

目前大多数文档和公司都使用2.x版本,2.x版本相比较3.x的版本稳定,使用时间久,好搭建,但是支持内容比较少,目前仅支持三种管理工具:Maven OBR P2 Yum,本文将使用2.x的版本

3.x

3.x版本是未来仓库管理工具的趋势,目前3.x支持的仓库超级多,下图为官网所示:

3.x支持版本

但是目前3.x文档比较稀少,bug也比2.x版本多。使用版本前需要权衡。

在官网下载tar包或zip包均可,可以直接通过linux下载tar包解压,这里就不赘述如何下载解压了,网上有很多教程。
解压后大约是这样的一个目录

nuxus

bin目录

bin目录主要配置了nexus的核心程序,启动目录也在这里,nexus默认自己搭载了servelet容器,所以不需要安装其他类似tomcat nginx等等容器。
conf目录,一些配置信息,在nexus.properties可以配置一些端口,ip等
我目前的配置目录如下


application-port=8081  
application-host=0.0.0.0  
nexus-webapp=${bundleBasedir}/nexus  
nexus-webapp-context-path=/nexus  

# Nexus section  
nexus-work=${bundleBasedir}/../sonatype-work/nexus  
runtime=${bundleBasedir}/nexus/WEB-INF  


lib目录主要存放了一些nexus运行时的依赖库
logs目录,存放nexus运行时所有的log,需要定时清理
nexus目录里面存放整个nexus运行html页面

在linux命令中打开bin目录,执行./nexus start,启动nexus服务。
若遇到权限不足,可以通过chmod -R 777 需要权限的目录

运行

打开ip:端口/nexus,进入nexus首页,点击左上角login in,通过登录管理员获取最高权限,默认账号、密码admin:admin123
登录后进入welcome页面

s

左侧菜单

artifact Search 搜索
views\repositories 仓库
security 安全相关的配置
administration nexus一些相关配置
help 一些没有用的关于啊啥的

android端使用的时候一般只在views\repositories 其他菜单可以不用关心。

repositories

image.png

Public Repositories:仓库组
3rd party:一般自己上传无法从公共仓库获得的第三方发布版本的依赖包、例如oracle的ojdbc等、
Apache Snapshots:用了代理ApacheMaven仓库快照版本的构件仓库、一般不使用
Central:用来代理maven中央仓库中发布版本构件的仓库
Central M1 shadow:用于提供中央仓库中M1格式的发布版本的构件镜像仓库
Releases:用来部署管理内部的发布版本构件的宿主类型仓库
Snapshots:用来部署管理内部的快照版本构件的宿主类型仓库
jybd_web_view: 这个是一个自己上传的仓库,并非nexus自带仓库

其他菜单目前没有用到,大多都是一些配置,例如Group配置,分类配置等等,目前先不做考虑

新建仓库

点击add-》Hosted Reository,新建一个托管仓库

image.png

点击完毕后,在下方会看到一个表单,如下图所示

image.png

我这里填写test,点击下方非常不明显的save后,如下图所示

image.png

新建完成后,会在仓库中出现你刚刚创建的托管地址,此时我们就可以在android studio中编写代码了。

下面附上android端lib目录下面的gradle代码

apply plugin: 'com.android.library'//标识该项目为lib项目插件
apply plugin: 'maven'//maven插件,用来上传
apply plugin: 'signing'//签名插件
signing {//若是正式版本或者上传时,签名
    required { has("release") && gradle.taskGraph.hasTask("uploadArchives") }
    sign configurations.archives
}

uploadArchives {//上传配置
    configuration = configurations.archives
    repositories.mavenDeployer {
        beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }// 上传之判断是否签名
        repository(url: 'http://www.shprochina.com:8081/nexus/content/repositories/jybd_web_view/') {//仓库地址
            authentication(userName: "账号",//用户名
                    password: "密码")//密码
        }

        pom.project {//pom配置,此处配置与上一步填写内容一致
            name 'ttshop'
            packaging 'aar'
            description 'none'
            //default local storage localtion
            url 'http://www.shprochina.com:8081/nexus/content/repositories/jybd_web_view/'//仓库地址
            groupId "public"
            artifactId "jybd_web_view" //LibA
            version 1.03
        }
    }
}

写好代码后,编译,然后在terminal中执行
gradlew uploadArchives 将arr上传至nexus

image.png

得到红框框内的提示后,说明上传完成,刷新nexus,点击你的项目,就可以看到刚刚上传的arr了


image.png

jenkins自动上传到仓库

下载nexus插件,在自动构建中增加gradle脚本


image.png

,即可自动上传到仓库

你可能感兴趣的:(搭建基于nexus的android包管理私服)