建nexus搭建本地仓库私服和不建有什么区别

12117人阅读
Android天南地北(20)
& & & &Nexus是一个基于maven的仓库管理的社区项目.主要的使用场景就是可以在局域网搭建一个maven私服,用来部署第三方公共构件或者作为远程仓库在该局域网的一个代理.简单举几个例子就是:
& & & &1.第三方Jar包可以放在nexus上,项目可以直接通过Url和路径配置直接引用.方便进行统一管理.
& & & &2.同时有多个项目在开发的时候,一些共用基础模块可以单独抽取到nexus上,需要用的项目直接从nexus上拉取就行(基础模块的实现,维护和部署可以交给专门的人员,其他项目不用关心代码实现,这样也可以达到保证核心代码不泄露).
& & & &3.一些封闭开发的过程中开发机是不能上公网的,所以连接central repository和下载jar就比较麻烦,这时就可以用nexus搭建起来一个介于公网和局域网之间的桥梁.
& & & &接下来就简单介绍一下nexus的搭建以及在android项目中使用nexus的方式.
& & & &1.下载&配置
& & & &这里使用的是Nexus OSS开源版,官网下载地址:&,博主的开发环境是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启动之后就可以在浏览器访问类&#28.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 {
mavenLocal()
dependencies{
repositories {
maven { url 'http://192.168.9.190:9999/nexus/content/repositories/jesse/' }
}& & & &接下来需要从项目中把datetimepicker模块剥离出来,因为我们要把它单独部署到刚刚配置的仓库里,DeskClock项目直接依赖datetimepicker模块改为通过Nexus依赖.剥离之后在datetimepicker模块中的build.gradle文件中使用uploadArchives方法向指定仓库上传有效的aar文件.并且配置pom文件信息.目前配置是默认走repository中的仓库,如果在版本号后面加上-SNAPSHOT就会走snapshotRepository中的仓库.artifactId是该模块的名字,groupId是仓库包名路径.
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')
}& & & &在Android Studio的Gradle project插件中选中datetimepicker模块运行uploadArchives任务就可以将该模块的aar文件以1.0.2的版本部署到Nexus上,供其他项目引用.
& & & &将datetimepicker部署到Nexus上之后,就可以在主模块的build.gradle直接通过部署时设置的groupId和version建立与datetimepicker之间的依赖.
dependencies {
compile 'cn.jesse.android:datetimepicker:1.0.2'
转载请注明出处:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:659694次
积分:5694
积分:5694
排名:第4654名
原创:59篇
评论:156条
阅读:82526
文章:21篇
阅读:232715
文章:12篇
阅读:83000Nexus私服搭建_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Nexus私服搭建
&&maven的私有仓库搭建
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩11页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢Nexus 私服之一“环境搭建” - 一直想要的生活,只闻花香,不谈悲喜,喝茶读书,不争朝夕。阳光暖一点,再暖一点,日子慢一些,再慢一些... - ITeye博客
博客分类:
Nexus 私服之一“环境搭建”
私服不是 Maven 的核心概念,仅仅是一种衍生出来的特俗的 Maven 仓库。通过建
立自己的私服可以降低中央仓库的负荷、节省外网带宽、加速 Maven 构建、自己部署构
件等好处,从而高效地使用 Maven。有三种专门的 Maven 仓库管理软件可以用来帮助大
家建立私服。
a) Archiva
出身 Apache 基金会。
b) Artifactory
出身 JFrog。
出身 Sonatype,Maven 出身也是 Sonatype,并且 Nexus 也是当前最流行的
Maven 仓库管理软件,本文以此为例。
2. Nexus 简介
Nexus 出现的原因,最初是因为一名开发者忍受不了电信 ADSL 的低速度,开发了
一个很简单的 Web 应用。可以代理并缓存 Maven 构件,当 Maven 需要下载构件的时
候,就不需要反复依赖于 ADSL。到 2007 年,Sonatype 邀请这名开发者参与创造一
个更酷的 Maven 仓库管理软件,这就是现在的 Nexus。
Nexus 分为开源版和专业版,开源版本基于 GPLv3 许可证,其特性足以满足大部
分 Maven 用户的需要。专业版除了开源版本所有特性外,还主要包含一些企业安全控
制、发布流程控制等需要的特性,不过专业版是需要付费购买才能使用的。开源版本
Nexus 特性如下:
a) 娇小的内存占用(最少仅为 28M)
b) ExtJS 的友好界面
c) 基于 Restlet 的完全 REST API
d) 支持代理仓库、宿主仓库和仓库组
e) 基于文件系统,不需要数据库
f) 支持仓库索引和搜索
g) 支持从界面上传 Maven 构件
h) 细粒度的安全控制
3. 安装 Nexus
Nexus 是典型的 Java Web 应用,它有两种安装包,一种是包含 Jetty 容器 Bundle
包(个人推荐),另一种是不包含 Web 容器的 war 包。
从 http://www.sonatype.org/nexus/go 下载最新版本的 Nexus,本文的最新版本是 2.7.2。
b) Bundle 方式安装
Nexus 的 bundle 自带了 Jetty 容器,不需要额外的 Web 容器就可以直接启动。
首先解压 Bundle 文件。其中第一个目录是运行 Nexus 必须的,而第二个不是必须
的,Nexus 会在运行的时候动态创建该目录。当用户需要备份 Nexus 的时候,默认
备份 sonatype-work/目录,该目录包含了用户特定的内容。
nexus-2.7.2-03
该目录包含了 Nexus 运行所需要的文件,如启动脚本、依赖 jar 包等。
sonatype-work
该目录包含 Nenus 生成的配置文件、日志文件、仓库文件等。
在 nexus-2.7.2-03\bin\jsw\目录下,寻找自己计算机对应的操作系统就可以启动,
这里以 windows 为例
1) console-nexus.bat
启动 nexus 服务器,命令窗口关闭后,不会驻留在 windows 服务中。
2) instll-nexus.bat
将 nexus 安装成 windows 服务,开机自动启动,推荐做法。
3) start-nexus.bat
启动服务。
4) stop-nexus.bat
停止服务。
5) uninstall-nexus.bat
卸载 windows 服务中的 nexus。
将 nexus 安装成 windows 服务,所以先点击 instll-nexus.bat,再点击start-nexus.bat。
浏览器 http://127.0.0.1:8081/nexus,出现如下图说明安装成功。如果启动不成功,
这是 Bundle 安装中最常见的问题,Nexus Bundle 默认使用的端口是8081,
如果被其他程序占用,或者想使用 80 端口开放 Nexus 服务,则可以编辑文件
nexus-2.7.2-03\conf\ nexus.properties,找到属性application-port,
修改后保存文件,重启 Nexus 即可,如本例修改成 8888。
c) War 方式安装
除了 Bundle,Nexus 还提供一个可以直接部署到 Web 容器中的 war 包。
该war 包支持主流的 Web 容器,如 Tomcat、Glassfish、Jetty 和 Resin。
以 Tomcat6 为例,只需要把 Nexus war 包复制到 Tomcat 的部署目录
tomcat\webapps 下即可。启动 tomcat,浏览器 http://127.0.0.1:8081/nexus
就能看到 Nexus 的界面了。
4. 登录 Nexus
Nexus 拥有全面的权限控制功能,默认的 Nexus 访问都是匿名的,而匿名用户仅
包含一些最基本的权限,要全面学习和 管理 Nexus,就必须以管理员方式登录。可以
单击界面右上角的 Log In 进行登录,Nexus 的默认管理员用户名和密码为admin/admin123。
浏览: 32627 次
来自: 成都
哎,路是人走的,个人的路都不一样,加油
yangfuchao418 写道国内哪几个医科大学?还有被谁顶 ...
国内哪几个医科大学?还有被谁顶替奥赛的?都这样了还不敢爆出名字 ...
赞。为你骄傲,不是崇拜Windows 下Nexus搭建Maven私服
- ITeye博客
博客分类:
1、 为什么使用Nexus
如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下 载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程。很多情况下项目的开发都是在内网进行的,连接不到maven仓库怎么 办呢?开发的公共构件怎么让其它项目使用?这个时候我们不得不为自己的团队搭建属于自己的maven私服,这样既节省了网络带宽也会加速项目搭建的进程, 当然前提条件就是你的私服中拥有项目所需的所有构件。
2、Nexus下载
下载地址:
3、Nexus启动
我下载的是zip包,解压后进入\nexus-2.1.2-bundle\nexus-2.1.2\bin\jsw\,根据操作系统类型选择文件夹,我选的是windows-x86-32文件夹,进入后可看到如下所示bat文件。
双击console-nexus.bat运行。游览器中输入http://127.0.0.1:8081/nexus/,出现图(2)所示就代表nexus已经启动成功。
8081为默认的端口号,要修改端口号可进入nexus-2.1.2-bundle\nexus-2.1.2\conf\打开nexus.properties文件,修改application-port属性值就可以了。
默认的用户名和密码:admin/admin123,登录后看到图(3)所示:
4、Nexus仓库
nexus的仓库类型分为以下四种:
group: 仓库组
hosted:宿主
proxy:代理
virtual:虚拟
首次登陆nexus后可以看到以下一个仓库组和多个仓库。
Public Repositories:
3rd party: 无法从公共仓库获得的第三方发布版本的构件仓库
Apache Snapshots: 用了代理ApacheMaven仓库快照版本的构件仓库
Central: 用来代理maven中央仓库中发布版本构件的仓库
Central M1 shadow: 用于提供中央仓库中M1格式的发布版本的构件镜像仓库
Codehaus Snapshots: 用来代理CodehausMaven 仓库的快照版本构件的仓库
Releases: 用来部署管理内部的发布版本构件的宿主类型仓库
Snapshots:用来部署管理内部的快照版本构件的宿主类型仓库
4.1、创建Nexus宿主仓库
在Repositories选项页的菜单栏上点击Add按钮会出现如下所示,选择要添加的仓库类型。
这里我点击添加宿主类型的仓库,在仓库列表的下方会出现新增仓库的配置,如下所示:
点击save按钮后就会在仓库列表中看到刚才新增的仓库。
4.2、创建Nexus代理仓库
点击菜单栏上的Add按钮后选择Proxy Repository,看到如下所示配置界面:
4.3、创建Nexus仓库组
仓库组和仓库关系是一对多的关系,一个仓库组可以指向多个仓库。
点击菜单栏上的Add按钮选择Repository Group就可以看到仓库组的配置界面,如下所示:
点击save后就可在仓库列表中看到新增的仓库组了,项目中如果要下载构件的话,配置文件中一般都用仓库组的URL。
5、修改Maven配置文件从Nexus下载构件
1) 如果想对操作系统的所有用户统一配置maven,则只需修改maven\conf\setting.xml 文件就可以了,如果只想对用户单独配置maven,只需将conf\setting.xml文件复制到C:\Documents and Settings\Administrator\.m2文件夹下(我这里假设系统装在c盘,用户为Administrator)。
打开setting.xml文件,可以看到如下代码:
&!-- localRepository
| The path to the local repository maven will use to store artifacts.
| Default: ~/.m2/repository
&localRepository&&/localRepository&
表示如果不设置localRepository,maven会默认将本地仓库建到/.m2/repository文件夹下。
设置localRepository如下代码所示:
F:\myCenterRepository
表示在myCenterRepository文件夹下建立本地仓库。个人建议不要采用默认的仓库地址,因为项目如果很多的话,那么本地仓库所占的磁盘空间就比较多了,所以指定仓库地址到其他盘符,更方便管理。
5.2、在POM文件中配置Nexus仓库
在项目的pom文件中添加如下代码:
my-nexus-repository
http://127.0.0.1:7788/nexus/content/groups/public/
my-nexus-repository
http://127.0.0.1:7788/nexus/content/groups/public/
在pom文件中配置只对当前项目有效,而实际开发中不可能在每个项目中重复配置信息,所以不建议在pom文件中配置。
5.3、在setting.xml文件中配置Nexus仓库
1)maven提供了profile来配置仓库信息,如下所示:
http://central
http://central
2) 激活profile
3)配置镜像
http://127.0.0.1:7788/nexus/content/groups/public/
这里配置mirrorOf的值为*,代表maven的所有访问请求都会指向到Nexus仓库组。
6、部署构件到Nexus仓库
6.1、maven部署
1) 修改pom文件
在pom文件中添加如下配置:
my-nexus-releases
http://127.0.0.1:7788/nexus/content/repositories/releases/
my-nexus-snapshot
http://127.0.0.1:7788/nexus/content/repositories/snapshots/
2)在setting.xml文件中添加认证信息:
my-nexus-releases
my-nexus-snapshot
上面的配置中我用的是超级管理员的账户,开发项目中可以改为具有部署构件权限的用户就可以了。
3)执行部署
测试的构件项目信息如下:
从上面的信息中可以看出构件为发布版本,所以部署构件的话会自动部署至releases仓库中。
在命令行中执行:mvn clean deploy
如果之前没用执行过该命令,maven会自动到中央仓库中下载部署所需的插件。最后在命令行中看到如下所示就代表构件已经部署成功。
到nexus的releases仓库中查看刚刚部署好的构件信息如下所示:
如果部署失败的要检查一下用户是否有部署的权限,目标仓库是否允许部署,是否缺少部署所需的构件。
6.2、手动部署
手动部署构件则更为简单了,在nexus的仓库列表中点击要部署的目标仓库,然后点击Artifact Upload选项卡看到下图所示:
通过以上配置运用Nexus搭建的私服基本上可以用了,更多配置需求可参考Nexus book.
Nexus book下载地址:
浏览: 484929 次
来自: 杭州
请问下,除了用session的方式 ,我采用redirectA ...
讲得很清晰
感谢楼主,第一次使用idea,最后一步始终不成功,网上找了很多 ...
我都给虐了一星期的问题在你这里给解决了  公司一般都有个自己的私服来管理各种jar包,原因大概有这么3个,分别是:
    1、有的公司不能访问外网,只能通过私服来管理jar包和插件;
    2、公司网速比较慢,通过公司的私服来获取jar包比较快;
    3、内部的的一些jar包放在私服上,比较方便的大家使用。
  这里简单介绍下搭建Nexus环境,并且在eclipse mvn插件环境下来上传jar包。
Nexus环境搭建:
   说明:这里是Windows环境,Linux类似。
  1、下载Nexus安装文件:&,目前是这个最新版本;
  2、解压到任意目录,我这里解压到E盘,进入E:\nexus-2.13.0-01\bin\jsw\windows-x86-64,点击install-nexus.bat安装成为windows服务,这里选择自己计算机对应的文件;
  3、访问http://localhost:8081/nexus/,这就是私服;
  4、点击右上角登录,默认帐号admin,密码admin123;
  5、点击左边Repositories,可以看到一系列仓库类型,我们一般使用3个,分别是Releases,Snapshots和3rd party。这3个仓库风别是装稳定版,开发版和第三方jar包 。
  6、举例,手动上传一个jar到Releases仓库里面。
  7、上面是手动方式,另外一种是利用mvn直接发布到私服上面来,需要修改2个地方,第一是在settings文件的servers节点下加入,这是配置私服的密码和仓库,配合pom文件中的仓库地址就构成了完成的访问私服的要素,帐号和密码之所以在settings中设置,是由于settings文件是本地的,而pom.xml文件是公共的,不安全,所以放在settings中:
&id&nexus-releases&/id&
&username&admin&/username&
&password&admin123&/password&
&id&nexus-snapshots&/id&
&username&admin&/username&
&password&admin123&/password&
  第二是在pom.xml中增加,下面的id和settings中的id必须要一样。
&distributionManagement&
&repository&
&id&nexus-release&/id&
&name&Nexus Release Repository&/name&
&url&http://localhost:8081/nexus/content/repositories/release/&/url&
&/repository&
&snapshotRepository&
&id&nexus-snapshots&/id&
&name&Nexus Snapshot Repository&/name&
&url&http://localhost:8081/nexus/content/repositories/snapshots/&/url&
&/snapshotRepository&
&/distributionManagement&
  上面的私服两个仓库的url从什么地方获取呢?如下图:
  8、新建一个mvn项目,
    1、运行source:jar在target下生成源码jar包;
    2、运行deploy,class的jar包发布到私服;
    3、运行source:jar deploy,连同源码一起发布到私服。
  9、完成,在其他项目中可以使用上面的jar包了。
  10、a.贴两个以前遇到过的小异常过来,在eclipse中配置mvn的时候可以分别配置mvn的目录和settings文件,不过最好是二者是同一个版本的,不然有可能就会出问题。
     b.我们有时候明明&dependency&没写错,却偏偏各种报错,可以删掉本地对应的jar,重新下载,就ok了。
  11、学习建议:mvn这个东西,就是难者不会,会者不难。基本上按照这样一个路线就问题不大,基本使用 =& 了解继承/聚合 =& 了解jar包冲突机制,并解决冲突 =&了解mvn的3个默认声明周期 ,生命周期的各个阶段phase ,各个阶段的目标goal =& mvn的插件开发 =& Nexus私服搭建及其使用。大致这样一个过程下来,就能非常熟悉mvn,如果在稍微看看mvn的源码,大致看一看,基本上可以说是精通mvn了。
&《Nexus3.x.x上传第三方jar》参考:http://blog.csdn.net/iopfan/article/details/
阅读(...) 评论()

我要回帖

更多关于 nexus 搭建 的文章

 

随机推荐