- 浏览: 622203 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (334)
- java core (12)
- struts2.x (2)
- spring (3)
- hibernate (8)
- jpa (6)
- maven (2)
- osgi (5)
- eclipse (4)
- struts2.x+spring2.x+hibernate 整合 (5)
- ebs (0)
- html (0)
- vaadin (1)
- css (0)
- jquery (0)
- javascript (0)
- svn (1)
- cvs (0)
- axas2.x (0)
- eclipse+maven (9)
- annotation (0)
- 基于OSGi的动态化系统搭建 (1)
- notenet (1)
- jboss eclipse (4)
- eclipse工具 (4)
- jdk1.6+maven3.0.3+nuxeo+svn+felix+cxf+spring+springDM (6)
- spring dm (1)
- Nexus介绍 (1)
- proxool listener (0)
- oracle (4)
- mysql (8)
- 搭建你的全文检索 (1)
- hibernatehibernatehibernate (0)
- cvsearchcvsearch (0)
- mycvseach (0)
- asdfasdfasdf (0)
- propertiey (0)
- hibernate annotation (0)
- libs (0)
- icam (2)
- start 数据库配置 (0)
- jboss (1)
- 让Eclipse启动时显示选择workspace的对话框 (1)
- table表头固定 (1)
- s2s3h4 (0)
- leaver (0)
- mycvsaerchddd (0)
- 关于jboss5.0.1部署 (4)
- bookmarks (0)
- PersistenceUnitDeployment (0)
- mycom (0)
- HKEY_CURRENT_USER = &H80000001 (0)
- syspath (1)
- css div (1)
- Dreamweaver CS5 (0)
- generate (0)
- mysql查看表结构命令 (1)
- LOG IN ERROR EMAIL TO SB (0)
- struts2 handle static resource (1)
- jsf (2)
- log4j (1)
- jbpm4.4 (2)
- down: jbpm4.4 (1)
- jstl1.2 (1)
- spring annotation (1)
- java design pattern (1)
- cache (1)
- ehcache (1)
- 11111 (0)
- myge (0)
- pom.xml (0)
- springquartz (0)
- OpenStack (9)
- hadoop (2)
- nginx (1)
- hadoop openstack (1)
- os (1)
- hadoop-2.6.0 zookeeper-3.4.6 hbase-0.98.9-hadoop2 集群 (5)
- hadoop2.7.0 ha Spark (2)
- tess (0)
- system (1)
- asdf (0)
- hbase (2)
- hbase create table error (1)
- ekl (1)
- gitignore (1)
- gitlab-ci.yml (1)
- shell (1)
- elasticsearch (2)
- Azkaban 3.0+ (1)
- centos用命令 (1)
- hive (1)
- kafka (1)
- CaptureBasic (0)
- CentOS7 (1)
- dev tools (1)
- README.md (1)
- Error (1)
- teamviewerd.service (1)
- scala (1)
- spark (1)
- standard (1)
- gitlab (1)
- IDEA (0)
- ApplicationContext (1)
- 传统数仓 (1)
- redis install (1)
- MYSQL AND COLUME (1)
- java版本选择 (1)
- hue (1)
- npm (1)
- es (1)
- 版本管理 (1)
- 升级npm版本 (1)
- git (1)
- 服务器参数设置 (1)
- 调大 IDEA 编译内存大小 (0)
- CentOS8安装GitLab (1)
- gitlab安装使用 (1)
最新评论
-
ssydxa219:
vim /etc/security/limits.confvi ...
ekl -
Gamehu520:
table中无数据
hbase 出现的问题 -
Xleer0102:
为什么都是只有问没有答,哭晕在厕所
hbase 出现的问题 -
jiajiao_5413:
itext table -
CoderDream:
不完整,缺com.tcs.org.demostic.pub.u ...
struts2.3.1.1+hibernate3.6.9Final+spring3.1.0+proxool+maven+annotation
Nexus介绍
Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节 省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的 REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。
下载和安装
你可以从http://nexus.sonatype.org/downloads/ 下载最新版本的Nexus,笔者使用的是1.3.0版本。
Nexus提供了两种安装方式,一种是内嵌Jetty的bundle,只要你有JRE就能直接运行。第二种方式是WAR,你只须简单的将其发布到web容器中即可使用。
Bundle方式安装
解压nexus-webapp-1.3.0-bundle.zip 至任意目录,如D:\dev_tools ,然后打开CMD,cd至目录D:\dev_tools\nexus-webapp-1.3.0\bin\jsw\windows-x86-32 ,运行Nexus.bat 。你会看到Nexus的启动日志,当你看到“Started SelectChannelConnector@0.0.0.0:8081”之后,说明Nexus启动成功了,然后打开浏览器,访问 http://127.0.0.1:8081/nexus,你会看到如下的页面:
要停止Nexus,Ctrl+C即可,此外InstallNexus.bat可以用来将Nexus安装成一个windows服务,其余的脚本则对应了启动,停止,暂停,恢复,卸载Nexus服务。
WAR方式安装
你需要有一个能运行的web容器,这里以Tomcat为例,加入Tomcat的安装目录位于D:\dev_tools\apache-tomcat-6.0.18 ,首先我们将下载的nexus-webapp-1.3.0.war 重命名为nexus.war ,然后复制到D:\dev_tools\apache-tomcat-6.0.18\webapps\nexus.war ,然后启动CMD,cd到D:\dev_tools\apache-tomcat-6.0.18\bin\ 目录,运行startup.bat 。一切OK,现在可以打开浏览器访问http://127.0.0.1:8080/nexus,你会得到和上图一样的界面。
代理外部Maven仓库
登陆
要管理Nexus,你首先需要以管理员身份登陆,点击界面右上角的login,输入默认的登录名和密码:admin/admin123,登陆成功后,你会看到左边的导航栏增加了很多内容:
这里,可以管理仓库,配置Nexus系统,管理任务,管理用户,角色,权限,查看系统的RSS源,管理及查看系统日志,等等。你会看到Nexus的功能十分丰富和强大,本文,笔者只介绍一些最基本的管理和操作。
代理Maven中央仓库
点击左边导航栏的Repositories,界面的主面板会显示所有一个所有仓库及仓库组的列表,你会看到它们的Type字段的值有group,hosted,proxy,virtual。这里我们不关心virtual,只介绍下另外三种类型:
- hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。
- proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
- group,仓库组,用来合并多个hosted/proxy仓库,通常我们配置maven依赖仓库组。
由此我们知道,我们需要配置一个Maven中央仓库的proxy,其实Nexus已经内置了Maven Central,但我们需要做一些配置。点击仓库列表中的Maven Central,你会注意到它的Policy是release,这说明它不会代理远程仓库的snapshot构件,这是有原因的,远程仓库的 snapshot版本构件不稳定且不受你控制,使用这样的构件含有潜在的风险。然后我们发现主面板下方有三个Tab,分别为 Browse,Configuration和Mirrors,我们点击Configuration进行配置,你现在需要关心的是两个配置 项:“Remote Storage Location”为远程仓库的地址,对于Maven Central来说是http://repo1.maven.org/maven2/;“Download Remote Indexes”顾名思义是指是否下载远程索引文件,Maven Central的该字段默认为False,这是为了防止大量Nexus无意识的去消耗中央仓库的带宽(中央仓库有大量的构件,其索引文件也很大)。这里我 们需要将其设置为True,然后点击Save。在Nexus下载的中央仓库索引文件之后,我们就可以在本地搜索中央仓库的所有构件。下图展示了我们刚才所 涉及的配置:
添加一个代理仓库
这里我们再举一个例子,我们想要代理Sonatype的公共仓库,其地址为:http://repository.sonatype.org /content/groups/public/。步骤如下,在Repositories面板的上方,点击Add,然后选择Proxy Repository,在下方的配置部分,我们填写如下的信息:Repository ID - sonatype;Repository Name - Sonatype Repository;Remote Storage Location - http://repository.sonatype.org/content/groups/public/。其余的保持默认值,需要注意的是 Repository Policy,我们不想代理snapshot构件,原因前面已经描述。然后点击Save。配置页面如下:
管理本地Maven仓库
Nexus预定义了3个本地仓库,分别为Releases,Snapshots,和3rd Party。这三个仓库都有各自明确的目的。Releases用于部署我们自己的release构件,Snapshots用于部署我们自己的 snapshot构件,而3rd Party用于部署第三方构件,有些构件如Oracle的JDBC驱动,我们不能从公共仓库下载到,我们就需要将其部署到自己的仓库中。
当然你也可以创建自己的本地仓库,步骤和创建代理仓库类似,点击Repository面板上方的Add按钮,然后选择Hosted Repository,然后在下方的配置面板中输入id和name,注意这里我们不再需要填写远程仓库地址,Repository Type则为不可修改的hosted,而关于Repository Policy,你可以根据自己的需要选择Release或者Snapshot,如图:
管理Maven仓库组
Nexus中仓库组的概念是Maven没有的,在Maven看来,不管你是hosted也好,proxy也好,或者group也好,对我都是一样 的,我只管根据groupId,artifactId,version等信息向你要构件。为了方便Maven的配置,Nexus能够将多个仓 库,hosted或者proxy合并成一个group,这样,Maven只需要依赖于一个group,便能使用所有该group包含的仓库的内容。
Nexus预定义了“Public Repositories”和“Public Snapshot Repositories”两个仓库组,前者默认合并所有预定义的Release仓库,后者默认合并所有预定义的Snapshot仓库。我们在本文前面的 部分创建了一个名为“Sonatype Repository”的仓库,现在将其合并到“Public Repositories”中。
点击仓库列表中的“Public Repositories”,然后选择下方的"Configuration" Tab,在配置面板中,将右边“Avaiable Repositories”中的“Sonatype Repository”拖拽到左边的“Ordered Group Repository”中,如图:
创建仓库组和创建proxy及hosted仓库类似,这里不再赘述。需要注意的是format字段需要填写“maven2”,添加你感兴趣的仓库即可。
搜索构件
在浩大的Maven仓库中一下下点击链接,浏览路径以寻找感兴趣的构件是一件很郁闷的事情。Nexus基于nexus-indexer提供构件搜索 功能,要想对仓库进行搜索,无论是hosted,proxy,或者group,你都必须确认索引文件存在。这一点对于代理仓库尤其重要,有些远程仓库可能 根本就没有索引,所以你无法搜索这些代理仓库。有些远程仓库的远程索引非常大,如中央仓库达到了70M左右,那么第一次下载索引需要花很多时间,所以要期 望得到搜索结果,确保看到如下的文件:
一旦你的Nexus拥有了本地或者远程仓库的索引文件,你就可以享受Nexus的构件搜索功能了。不论登陆与否,你都可以使用关键字进行模糊搜索, 比如我在左边导航栏上部的搜索框内输入junit,然后点击搜索按钮,右边立刻会分页显示500多条的junit相关构件信息。如果你了解更多的信息,你 也可以通过限定groupId,artifactId,version进行搜索,点击导航栏中的“Advanced Search”,点击右边所有页面左上角的下拉框,选择“GAV Search”。笔者这里输入junit:junit:4.4,然后回车:
选择一项搜索结果,在页面下方会显示“Artifact Information”的面板,你可以点击"artifact"或者"pom"下载对应文件,而该面板右边更显示了一个Maven依赖配置,你可以直接复制该配置到Maven POM中,这是个十分方便的特性。
此外,值得一提的是,Nexus还支持基于classname的搜索,你只需点击搜索页面右上角的下拉框,选择“Classname Search”,然后输入类名即可,这里我不再赘述。
配置Maven使用Nexus
默认情况下,Maven依赖于中央仓库,这是为了能让Maven开箱即用,但仅仅这么做明显是错误的,这会造成大量的时间及带宽的浪费。既然文章的前面已经介绍了如何安装和配置Nexus,现在我们就要配置Maven来使用本地的Nexus,以节省时间和带宽资源。
我们可以将Repository配置到POM中,但一般来说这不是很好的做法,原因很简单,你需要为所有的Maven项目重复该配置。因此,这里我将Repository的配置放到$user_home/.m2/settings.xml中:
- < settings >
- ...
- < profiles >
- < profile >
- < id > dev </ id >
- < repositories >
- < repository >
- < id > local-nexus </ id >
- < url > http://127.0.0.1:8080/nexus/content/groups/public/ </ url >
- < releases >
- < enabled > true </ enabled >
- </ releases >
- < snapshots >
- < enabled > true </ enabled >
- </ snapshots >
- </ repository >
- </ repositories >
- </ profile >
- </ profiles >
- < activeProfiles >
- < activeProfile > dev </ activeProfile >
- </ activeProfiles >
- ...
- </ settings >
<settings> ... <profiles> <profile> <id>dev</id> <repositories> <repository> <id>local-nexus</id> <url>http://127.0.0.1:8080/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> </profile> </profiles> <activeProfiles> <activeProfile>dev</activeProfile> </activeProfiles> ... </settings>
由于我们不能直接在settings.xml中插入<repositories>元素,这里我们编写了一个profile,并添加了一 个profile并使用<activeProfile>元素自动将这个profile激活。这里的local-nexus仓库指向了刚才我们 配置的Nexus中“Public Repositories”仓库组,也就是说,所有该仓库组包含的仓库都能供我们使用。此外,我们通过<releases> 和<snapshots>元素激活了Maven对于仓库所有类型构件下载的支持,当然你也可以调节该配置,比如说禁止Maven从Nexus 下载snapshot构件。
使用该配置,Maven就会从你的Nexus服务器下载构件了,速度和从Central下载可不是一个数量级的。
部署构件至Nexus
Nexus提供了两种方式来部署构件,你可以从UI直接上传,也可以配置Maven部署构件。
通过Nexus UI部署
有时候有个jar文件你无法从公共Maven仓库找到,但是你能从其它得到这个jar文件(甚至是POM),那么你完全可以将这个文件部署到Nexus中,使其成为标准流程的一部分。步骤如下:
点击左边导航栏的"Repository",在右边的仓库列表中选择一个仓库,如“3rd Party”,然后会看到页面下方有四个tab,选择最后一个“Upload”,你会看到构件上传界面。选择你要上传的构件,并指定POM,(或者手工编 写GAV等信息),最后点击Upload,该构件就直接被部署到了Nexus的"3rd Party"仓库中。如图:
通过Maven部署
更常见的用例是:团队在开发一个项目的各个模块,为了让自己开发的模块能够快速让其他人使用,你会想要将snapshot版本的构件部署到Maven仓库中,其他人只需要在POM添加一个对于你开发模块的依赖,就能随时拿到最新的snapshot。
以下的pom.xml配置和settings.xml能让你通过Maven自动化部署构件:
pom.xml
- < project >
- ...
- < distributionManagement >
- < repository >
- < id > nexus-releases </ id >
- < name > Nexus Release Repository </ name >
- < url > http://127.0.0.1:8080/nexus/content/repositories/releases/ </ url >
- </ repository >
- < snapshotRepository >
- < id > nexus-snapshots </ id >
- < name > Nexus Snapshot Repository </ name >
- < url > http://127.0.0.1:8080/nexus/content/repositories/snapshots/ </ url >
- </ snapshotRepository >
- </ distributionManagement >
- ...
- </ project >
<project> ... <distributionManagement> <repository> <id>nexus-releases</id> <name>Nexus Release Repository</name> <url>http://127.0.0.1:8080/nexus/content/repositories/releases/</url> </repository> <snapshotRepository> <id>nexus-snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://127.0.0.1:8080/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement> ... </project>
settings.xml
- < settings >
- ...
- < servers >
- < server >
- < id > nexus-releases </ id >
- < username > admin </ username >
- < password > admin123 </ password >
- </ server >
- < server >
- < id > nexus-snapshots </ id >
- < username > admin </ username >
- < password > admin123 </ password >
- </ server >
- </ servers >
- ...
- </ settings >
<settings> ... <servers> <server> <id>nexus-releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password>admin123</password> </server> </servers> ... </settings>
这里我们配置所有的snapshot版本构件部署到Nexus的Snapshots仓库中, 所有的release构件部署到Nexus的Releases仓库中。由于部署需要登陆,因为我们在settings.xml中配置对应 Repository id的用户名和密码。
然后,在项目目录中执行mvn deploy ,你会看到maven将项目构件部署到Nexus中,浏览Nexus对应的仓库,就可以看到刚才部署的构件。当其他人构建其项目时,Maven就会从Nexus寻找依赖并下载。
总结
本文介绍强大的仓库管理器——Nexus,包括如何下载安装Nexus,配置Nexus代理中央仓库,管理Nexus的代理仓库,本地仓库,以及仓 库组。并帮助你了解如何通过Nexus搜索构件。最后,如何在Maven中配置Nexus仓库,以及如何部署构件到Nexus仓库中。这些都是Nexus 中最基本也是最常用的功能。随着使用的深入,你会发现Nexus还有很多其它的特性,如用户管理,角色权限管理等等。
Nexus的OSS版本是完全开源的,如果你有兴趣,你可以学习其源码,甚至自己实现一个REST客户端。
马上拥抱Nexus吧,它是免费的!
发表评论
-
maven reposite
2013-01-14 23:38 1661central http://repo1.maven.o ... -
project facets
2013-01-14 13:04 1229接手一个前期的Web项目,当时是用MyEclipse建立的 ... -
pom
2012-02-16 12:26 0什么是pom? pom作为项目对象模型。通过 ... -
mirror
2012-02-14 17:03 1229<mirror> <id>p ... -
maven pom.xml
2012-02-14 13:55 1280<repositories> ... -
Configuring Eclipse for Maven plugins
2011-12-20 10:06 1160Change eclipse.ini from-startup ... -
maven+jdk+eclipse 安装
2011-12-12 13:04 878http://wenku.baidu.com/view/6e5 ... -
eclipse+m2eclipse+maven+nexus
2011-12-12 12:34 1346eclipse:最新的ganymede3.4 m2eclips ... -
maven+jdk+eclipse 安装
2011-12-12 12:30 5186maven是个项目管理工具,集各种功能于一身,下面介绍mave ...
相关推荐
主要介绍了Broadcom Nexus平台,从目录到代码分析都有提及。
以下将详细介绍如何利用 Maven 和 Nexus 进行部署。 **一、Nexus 介绍** Nexus 是 Sonatype 公司推出的一款开源仓库管理工具,它充当了本地 Maven 仓库的角色。Nexus 作为私服,可以代理远程仓库,缓存常用依赖,...
对于安装步骤,文档中详细介绍了在Windows系统上安装Nexus的过程,包括下载安装包、解压缩、配置环境变量以及修改配置文件等步骤。首先,需要从官方网站下载Nexus的安装包。Nexus为不同的操作系统提供了不同格式的...
【Nexus私服操作详解】 Nexus是一款强大的Maven仓库管理软件,它可以帮助用户管理和组织各种Maven依赖,包括中央仓库的镜像、自定义私有仓库以及第三方库。本教程将指导你如何创建并使用Nexus私有仓库,并通过...
这篇文章介绍的是Nexus3推出之初的Api的设计思路,主要是通过结合groovy脚本来完成相关的功能,简单的来说需要用户自行提供groovy脚本,nexus提供上传和运行脚本的接口,虽然有些粗糙,但是大部分功能毕竟留出了一个...
通过本文档的介绍,我们可以了解到如何安装和配置Nexus Repository Manager OSS,并了解其基本使用方法。对于希望集中管理软件包和依赖的企业来说,Nexus Repository Manager无疑是一个非常实用且高效的解决方案。...
本教程将详细介绍如何搭建和使用Nexus私有仓库,帮助你更好地管理和分发你的软件组件。 一、Nexus简介 Nexus主要有三种类型的仓库:Repository(存储库)、Group(仓库组)和Proxy(代理仓库)。Repository用于存储...
本篇文章将详细介绍 Nexus3 的安装过程以及常见问题。 首先,下载 Maven 私服 Nexus3 的安装包。在这个压缩包中,包含了两个主要的文件夹:`sonatype-work` 和 `nexus-3.9.0-01`。`sonatype-work` 文件夹存储的是 ...
4. **设置运行目录和启动脚本**:创建一个目录,如 `/var/nexus` 作为Nexus的工作目录,然后将解压后的bin目录中的 `nexus` 脚本设为可执行,并将其链接到系统的路径,比如 `/usr/bin`,以便于执行。 5. **配置...
本篇文章将详细介绍如何在 Linux 系统上安装 Nexus 3.19.1 版本,并进行基本的配置。 #### 二、下载 Nexus 安装包 首先,需要从官方提供的链接下载 Nexus 的安装包: - 下载地址:...
本文将详细介绍如何在Unix环境下安装和使用Nexus 3.61.0-02。 首先,我们关注的是"Nexus-3.61.0-02-unix.tar.gz"这个文件。这是一个针对Unix系统(包括Linux和macOS)的压缩包,包含了运行Nexus所需的所有组件。...
本文将详细介绍如何在 Linux 和 Windows 上安装 Nexus 3,并分享一些安装过程中可能遇到的问题及解决方案。 ### 一、Linux 系统上的安装 1. **下载 Nexus 3 安装包**: 首先从 Sonatype 官方网站获取 Nexus 3 的...
下面我们将详细介绍如何在Gradle项目中配置Nexus仓库。 #### 四、配置Gradle与Nexus 首先,我们需要在`build.gradle`文件中添加相应的配置。示例中的代码片段展示了如何配置Gradle以使用Nexus作为构件发布的目标。...
下面将详细介绍Nexus以及如何使用其2.14版本搭建私服。 一、Nexus概述 1. **功能**:Nexus主要功能包括代理仓库、存储库组、宿主仓库、虚拟仓库和垃圾回收。它能够代理公共Maven仓库,缓存远程依赖,降低网络延迟...
1.Nexus课程第一部分.wmv 2.nexus课程第二部分.wmv 3.nexus课程第三部分.wmv 4.数据中心课程第四部分l2 l3配置介绍.wmv 5.数据中心课程第五部分fex技术介绍与配置.wmv 6.数据中心课程第六部分vpc上.wmv 6.数据中心...
### Maven 私服 Nexus 介绍与安装使用 #### 一、Maven 私服 Nexus 概述 Maven 是一个非常流行的 Java 项目构建管理工具,它能够帮助开发者自动化构建过程,包括编译、测试、打包等环节。而 Maven 仓库(Repository...
#### 一、Nexus产品介绍 ##### 1. 产品概述 Cisco Nexus 系列交换机是思科推出的一系列高性能数据中心交换机,旨在为现代数据中心提供高度可扩展性、高可靠性和低延迟的数据处理能力。Nexus 系列覆盖了从核心到...