Android 使用Nexus 进行项目管理
来源:互联网 发布:海南网络小贷牌照 编辑:程序博客网 时间:2024/06/06 12:36
转载出处:http://blog.csdn.net/l2show/article/details/48653949
一.概述
Nexus是一个基于maven的仓库管理的社区项目.主要的使用场景就是可以在局域网搭建一个maven私服,用来部署第三方公共构件或者作为远程仓库在该局域网的一个代理.简单举几个例子就是:
1.第三方Jar包可以放在nexus上,项目可以直接通过Url和路径配置直接引用.方便进行统一管理.
2.同时有多个项目在开发的时候,一些共用基础模块可以单独抽取到nexus上,需要用的项目直接从nexus上拉取就行(基础模块的实现,维护和部署可以交给专门的人员,其他项目不用关心代码实现,这样也可以达到保证核心代码不泄露).
3.一些封闭开发的过程中开发机是不能上公网的,所以连接central repository和下载jar就比较麻烦,这时就可以用nexus搭建起来一个介于公网和局域网之间的桥梁.
接下来就简单介绍一下nexus的搭建以及在Android项目中使用nexus的方式.
二.搭建
1.下载&配置
这里使用的是Nexus OSS开源版,官网下载地址:http://www.sonatype.org/nexus/go/ ,博主的开发环境是ubuntu,所以就下载的TGZ压缩的.
把压缩包解压之后进入bin文件夹就可以运行shell脚本来启动nexus,通过查看bin/nexus脚本发现可以修改脚本来适配自己的需求,例如修改Nexus的root路径,如果需要以root身份来启动Nexus就需要设置RUN_AS_USER=root,设置app名字和登陆名字等.也可以去conf/nexus.properties文件修改端口之类的信息.
接下来直接运行Nexus脚本,查看一下该脚本支持几个参数命令,将Nexus启动起来(在这之前博主的Nexus已经启动了所以就用的restart)
2.创建仓库
从状态上来看nexus已经启动起来了,Nexus启动之后就可以在浏览器访问类似 192.168.9.190:9999/nexus/ 地址,其中ip为当前服务器ip,端口Nexus默认为8081,可以在conf/nexus.properties文件中修改端口.进入web管理页面后右上角登陆,Nexus默认的账号密码是admin:admin123,然后点击左侧的repositories查看现有的仓库列表.
这里的仓库分了四种类型
1.hosted(宿主仓库):用来部署自己,第三方或者公共仓库的构件
2.proxy(代理仓库):代理远程仓库
3.virtual(虚拟仓库):默认提供了一个 Central M1虚拟仓库 用来将maven 2适配为maven 1
4.group(仓库组):统一管理多个仓库
这里以建立hosted仓库为例简单介绍Nexus在Android开发中的实际使用情况.点击repositories->add 键入ID(部署项目的标识) Name等属性,这里需要注意的是,如果该仓库有多次部署的情况的话,将policy设置为allow redeploy,不然后续在部署的时候会出现403错误.
建立好新的仓库之后需要配置一下相关账号信息.在安全选项下选择用户选项,可以看到三个默认的账号,分别是管理员账号,部署账号和Nexus账号.正常访问仓库内容的时候是不需要这三个账户的,一般也就是把部署账号暴露出去,方便仓库项目维护人员部署项目使用.所以这里可以用默认的Deployment账户(记得reset下密码).也可以新建一个账号来使用,新建的时候可以通过add role management来控制该账号的权限.
回到repositories选项就可以看到新建出来的仓库,点击仓库URL可以直接进入到仓库路径,当然现在还没有部署项目.到此为止搭建Maven私服Nexus端的配置和部署都已经完成,下面开始介绍Nexus Android端的配置部署和应用.
3.Android端私服仓库应用
这里就拿之前分析过的Android 4.4原生DeckClock程序举例.Android 4.4 中的DeckClock项目需要依赖framework下的一个名叫datetimepicker的库工程.这里就把这个datetimepicker工程部署到Nexus上,让DeskClock根据仓库url和路径进行访问和datetimepicker版本控制.
首先在DeskClock项目的build.gradle中配置之前建立的仓库.
- allprojects {
- repositories {
- jcenter()
- mavenLocal()
- }
- dependencies{
- repositories {
- maven { url 'http://192.168.9.190:9999/nexus/content/repositories/jesse/' }
- }
- }
- }
- uploadArchives {
- repositories {
- mavenDeployer {
- snapshotRepository(url: 'http://192.168.9.190:8081/nexus/content/repositories/jesse-snapshot/') {
- authentication(userName: 'Jesse', password: 'jesse')
- }
- repository(url: 'http://192.168.9.190:8081/nexus/content/repositories/jesse/') {
- authentication(userName: 'Jesse', password: 'jesse')
- }
- pom.project {
- version '1.0.2'
- artifactId 'datetimepicker'
- groupId 'cn.jesse.android'
- packaging 'aar'
- description 'dependences lib'
- }
- }
- }
- }
- artifacts {
- archives file('datetimepicker.aar')
- }
将datetimepicker部署到Nexus上之后,就可以在主模块的build.gradle直接通过部署时设置的groupId和version建立与datetimepicker之间的依赖.
- dependencies {
- compile 'cn.jesse.android:datetimepicker:1.0.2'
- }
转载请注明出处:http://blog.csdn.net/l2show/article/details/48653949
- Android 使用Nexus 进行项目管理
- maven使用Nexus私有仓库进行管理
- maven使用Nexus私有仓库进行管理
- maven使用Nexus私有仓库进行管理
- 使用maven+sonarqube进行Android项目管理(一)
- 使用maven+sonarqube进行Android项目管理(二)
- 使用autotools进行项目管理
- 使用Maven进行项目管理
- 使用STARTEAM进行项目管理
- 使用trac进行项目管理
- 使用trac进行项目管理
- 使用Maven进行项目管理
- 使用SVN进行项目管理
- 使用Redmine进行项目管理
- 使用make进行项目管理
- 使用nexus管理maven仓库
- 使用Project进行项目管理 - 项目管理系列文章
- 使用CVS进行项目开发管理
- (4.1.27.8)JNI/NDK开发指南(五)——Jni打包及引用aar
- OpenGLES---OpenGL运行原理
- 如何将Powerpoint文档转换为Word文档
- Android 在非主线程中更新UI也能成功原因详解
- Java编程中的equals方法使用全解
- Android 使用Nexus 进行项目管理
- HDU 2544 最短路(floyed dijkstra 都能过)
- Map.EntrySet的用法
- Oracle的时间差写法
- Spring3 MVC请求参数获取的几种方法
- Log篇
- 记录android第一个hello world
- Activity启动流程以及View的绘制流程
- C# 数据绑定