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文档比较稀少,bug也比2.x版本多。使用版本前需要权衡。
在官网下载tar包或zip包均可,可以直接通过linux下载tar包解压,这里就不赘述如何下载解压了,网上有很多教程。
解压后大约是这样的一个目录
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页面
左侧菜单
artifact Search 搜索
views\repositories 仓库
security 安全相关的配置
administration nexus一些相关配置
help 一些没有用的关于啊啥的
android端使用的时候一般只在views\repositories 其他菜单可以不用关心。
repositories
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,新建一个托管仓库
点击完毕后,在下方会看到一个表单,如下图所示
我这里填写test,点击下方非常不明显的save后,如下图所示
新建完成后,会在仓库中出现你刚刚创建的托管地址,此时我们就可以在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
得到红框框内的提示后,说明上传完成,刷新nexus,点击你的项目,就可以看到刚刚上传的arr了
jenkins自动上传到仓库
下载nexus插件,在自动构建中增加gradle脚本
,即可自动上传到仓库