- 浏览: 414060 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
xurichusheng:
有个类 NameUtils 是在哪儿声明的呢?
Spring JdbcTemplate实现通用的泛型dao一:主功能实现 -
smallplum:
letmedown 写道Double d = new Doub ...
让Double类型完整显示,不用科学计数法显示E -
letmedown:
Double d = new Double("1.3 ...
让Double类型完整显示,不用科学计数法显示E -
chenbo19867758:
按照步骤可言实现破解和汉化,只是有部分没有汉化完全。
Linux上Jira 5.0的安装、破解及汉化 -
henryxiao57:
ServerID 如何获取?
Linux上Jira 5.0的安装、破解及汉化
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容器中即可使用。
安装过程:
将nexus.war复制到tomcat的webapps中,解压成nexus目录
修改nexus目录的:WEB-INF中的plexus.properties文件,
修改其中nexus-work项,到自己需要的目录中
启动tomcat,在浏览器上能够访问到 http://127.0.0.1:8080/nexus/ ,以及在nexus-work的设置对应地方能看到内容,启动成功
先看一下界面:
在左边菜单栏里选择Repositories,然后会出现右边的画面,右边上半部分是列出来的repository,黑体字是类型为group的repository. 这里简单介绍下几种repository的类型:
hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。
proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。
central是Maven的中央仓库,点击它并选择configuration标签栏,我们会看到下面的页面:
这里有几个项目是我们可能会经常用到的:
Override local storage location: 在这个选项你可以配置你的Nexus本地仓库的存放地址,用来覆盖其默认的存放地址
Remote storage location: 这里是远程仓库的地址,为了提高代理速度,你可以修改为国内的镜像地址。默认值是http://repo1.maven.org/maven2/
Download remote indexes: 这里配置是否下载远程索引文件,模式是false, 建议配置为true,这样我们便可以通过索引文件来搜索我们需要的构件。
Maven central是一个比较大的代理仓库,如果你需要添加的一个代理仓库,那么可以在点击左边惨淡栏里面的Repositories,然后右边的页面点击add -> proxy repository
填写相关信息保存即可。通常情况下,使用预设的代理仓库已经能够满足大部分项目的需求了, 只有在特殊需求的情况下才会参加代理仓库.
管理本地仓库
我们前面讲到类型为hosted的为本地仓库,Nexus预定义了3个本地仓库,分别是Releases, Snapshots, 3rd Party. 分别讲一下这三个预置的仓库都是做什么用的:
Releases: 这里存放我们自己项目中发布的构建, 通常是Release版本的, 比如我们自己做了一个FTP Server的项目, 生成的构件为ftpserver.war, 我们就可以把这个构建发布到Nexus的Releases本地仓库. 关于符合发布后面会有介绍.
Snapshots: 这个仓库非常的有用, 它的目的是让我们可以发布那些非release版本, 非稳定版本, 比如我们在trunk下开发一个项目,在正式release之前你可能需要临时发布一个版本给你的同伴使用, 因为你的同伴正在依赖你的模块开发, 那么这个时候我们就可以发布Snapshot版本到这个仓库, 你的同伴就可以通过简单的命令来获取和使用这个临时版本.
3rd Party: 顾名思义, 第三方库, 你可能会问不是有中央仓库来管理第三方库嘛, 没错, 这里的是指可以让你添加自己的第三方库, 比如有些构件在中央仓库是不存在的. 比如你在中央仓库找不到Oracle 的JDBC驱动, 这个时候我们就需要自己添加到3rd party仓库.
你也可以创建自己的本地仓库,点击Repository面板上方的Add按钮,然后选择Hosted Repository,然后在下方的配置面板中输入相关信息, 这里我们不再需要填写远程仓库地址,根据自己的需要选择Release或者Snapshot,如图:
仓库组的概念是Maven没有的,通过前面介绍可以了解到, 我们可以建立多个proxy代理仓库,hosted本地仓库, 如果没有仓库组的概念,我们如果需要引用这些仓库的是时候需要一一加入到我们的setting.xml里面去, 有了仓库的组的概念, 我们只需要做一次引用就可以了,把我们需要的仓库加入到仓库组即可.像这样:
<repositories> <repository> <id>nexus</id> <url>http://127.0.0.1:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>
Nexus中预设了2个仓库组,public repositories和public snapshot repositories. 如图:
这个仓库组默认包含本地仓库Releases, snapshots, 3rd party和代理仓库Maven Central. 你可以在Configuration配置页添加仓库到这个仓库组. 如果需要你还可以创建一个仓库组,如图:
点击 Add->Repository Group
出现New Repository Group界面后,填入ID, name 等相关信息, 在右边Available Repositories 栏里可以选择你要添加的仓库到你新建的仓库组.
通过 Nexus 搜索构件
在我们实际使用构件的过程中通常遇到一个问题,有时候我紧紧知道我所需要的构建的大致名字,并不知道全称或group id, 这是件非常头疼的事情. Nexus基于Nexus indexer的搜索功能帮我们解决了这个问题.
要是用搜索功能, 必须要有索引文件, Nexus默认是不建立索引文件的,因为像中央仓库这样的索引文件的建立需要耗费比较大的网络资源,仅索引文件就要几十兆. 要开启中央仓库的索引文件下载功能需要在Maven Central的配置页面, 把Download Remote Indexes选择true. 如图:
这样设置以后, Nexus会自动从远程中央仓库下载索引文件, 为了检验索引文件自动下载是否生效,可以却换到Browse:
如果出现先以上文件夹,那说明索引文件已经建立.
下面我试一下搜索功能, 在左边菜单栏里面有个Artifact Search, 在输入框里面输入你想要搜索的构件名字,比如: testing,那么查询结果如下:
这是模糊查询的结果,当然如果你知道更多信息,比如版本号等,你可以使用高级搜索,点击高级搜索后,右边界面会提供集中搜索方式:keyword, classname, GAV, checksum
你如果你不知道知道构件的名称, 只知道classname, 那么你也可以通过class name 的方式搜索,这里就不再赘述
到此为止我们介绍了如何安装和使用Nexus以及其基本配置, 下面我们介绍下如何让Maven来使用Nexus本地仓库用来替代使用远程仓库. 在Maven使用Nexus本地仓库只需稍作配置, 在settings.xml中加入以下代码:
<profile> <id>dev</id> <repositories> <repository> <id>nexus</id> <url>http://127.0.0.1:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexus</id> <url>http://127.0.0.1:8081/nexus/content/groups/public</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles> <activeProfiles> <activeProfile>dev</activeProfile> </activeProfiles>
这里配置了repository和pluginRepository, Maven在使用第三方构件和插件时是分开来配置的,所以如果我们也希望插件的下载也通过我们的本地仓库来下载,那么我们就需要配置pluginRepository.
红色字体部分就是我们之前安装的Nexus的地址, 这个地址可以是你们公司局域网内部的一台仓库服务器.
<releases> <enabled>true</enabled></releases>这个标签的作用是设定是否允许下载
release版本的载构件, 同样snapshots标签可以设定是否允许下载snapshot版本的构件.
通常,我们不建议下载snapshot版本的构件,因为它是不稳定的版本, 除非你有特殊的需
求.
构件部署
有些时候我们需要部署构件到Nexus的3rd party, 比如我们在中央仓库找不到我们需要的构件, 我们可以通过Nexus的UI来上传构件:
点击左边菜单栏的 Repositories, 然后点击右边界面的3rd party, 选择界面下方的Artifact Upload, 这个时候出现以下界面:
上传构件需要两个步骤,一个是定义文件的上传,再就是构件的实体文件.
第一部分定义文件可以是POM文件, 这也是比较推荐的方式, 如果没有pom文件,可以
选择以参数的形式输入.
第二部分是上传构件的实体文件,这里简单说一下Classifier和Extension, 这两个都是选
填相, Classifier用来区别同功能的构件用于不同的场景, 比如这个构件是分别针对JDK14
和JDK15做了2个功能一样的Jar, 这个时候你就需要指定这个构件的Classifier为JDK14
还是JDK15. Extension是指扩展名,如果不提供,那么会自动取这个构件的Packaging Type
作为扩展名, 比如 ear, jar, war 等等. (Packaging Type是在第一步中通过pom文件或者手
工输入得到的)
刚才说了3rd party的部署, 关于releases 和 snapshots的UI部署也是一样的操作过程.
我们之前也讲过, 这里的releases和snapshots是用来部署我们自己的项目构件的, 通过
UI部署是可以,但是不是最高效的, 我们可以通过配置Maven来自动部署我们的项目构
件,这也是我们建立自己的仓库的一个非常重要的原因, 下面就让我们看看如何配置:
首先需要在POM文件中加入以下代码:
<project> … <distributionManagement> <repository> <id> nexus-releases</id> <name> Nexus Release Repository</name> <url> http://127.0.0.1:8081/nexus/content/repositories/releases/</url> </repository> <snapshotRepository> <id> nexus-snapshots</id> <name> Nexus Snapshot Repository</name> <url> http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement> … </project>
这里配置,让Maven知道当我要发布release版本或者snapshot版本是需要发布到哪个地址.
然后我们需要在setting.xml里面配置一下Nexus的帐号和密码:
<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>
到此为止, 我们就可以通过命令mvn deploy或者通过IDE的可视化界面点击deploy来发布我们项目到本地仓库了. 通过这种方式我们可以很方便的进行模块间的依赖开发, 在后面的文章中我会详细介绍如何通过snapshot来让我们的依赖开发变得简单.
小结
本文介绍了Maven仓库, 如何通过Nexus建立自己本地仓库, 通过和远程仓库的比较, 我们知道Nexus给我带来很多方
发表评论
-
项目在64位JDK下正常,32位下出现异常
2013-02-27 15:02 2211这几天,发现项目在64 ... -
如何进行JVM参数配置
2013-02-27 13:46 814堆大小设置 JVM中最大 ... -
Java编程中“为了性能”尽量要做到的一些地方
2013-01-24 17:09 789下面是参考网络资源总结的一些在Java编程中尽可能要做到的一 ... -
安装jenkins
2012-06-07 14:46 01)搭建SCM环境 jenkins每次启动构建生命周期 ... -
Java中动态实例化一个对象
2012-04-07 12:06 2615使用场合:不知道具体要去实例化那个类的对象,通常这个参数由 ... -
Javar泛型方法及动态参数
2012-04-07 12:05 1188(1) 如何创建泛型方法 我们用例子来说明一下如何创建一 ... -
启动Tomcat6.x时does not exist or is not a readable directory
2012-03-14 14:31 1760前几天重新安装了Tomcat6,安装完Tomcat6后在wep ... -
Linux上Jira 5.0的安装、破解及汉化
2012-03-13 16:37 26426因为机子上要同时部署j ... -
java出现[Heap size],[PermGen space],[Java heap space ]的解决方法
2012-03-13 11:06 1921//首先检查程序有没有 ... -
如何使用Java自带的正则表达式
2011-12-21 21:20 906在Sun的Java JDK 1.40版本 ... -
深入浅出之正则表达式
2011-12-21 21:10 774前言: 半年前我对正则表达式产生了兴趣,在网上查找过不 ... -
JDK实现动态代理的例子-proxy
2011-08-23 16:16 858public interface Target { ... -
如何重写hashCode的方法
2011-07-19 15:40 1452为什么要重写hashCode方法? 我们应该先了解j ... -
Linux 安装SVN 整合Apache + 权限控制
2011-01-14 16:22 2053一:相关版本subversion在安装的时候,要求相关软件的版 ... -
关于Eclipse的SVN插件(Subclipse)历史版本乱码的问题
2010-08-13 16:08 5252我的项目都统一使用了UTF-8编码 查看当前版本,还是提交到 ... -
Eclipse控制台console自动跳出来
2010-07-12 10:18 2607有时候Eclipse启动,控制台console不会自动跳出 ... -
让Double类型完整显示,不用科学计数法显示E
2010-07-09 19:14 20300http://www.meiriyouke.net/?p=2 ... -
eclipse导出jar文件再将它转换成exe可执行文件详解
2009-12-10 22:15 1424此文章是为了帮助刚接触j2se或不懂如何打包jar文件的人而着 ... -
关于Java权限控制算法
2009-12-10 21:55 1512向大家介绍一种很不错 ... -
JavaMail常见问题
2009-12-10 17:05 1508阅读邮件——IMAP 问. 我 ...
相关推荐
软件安装部分将指导读者如何安装Nexus,包括如何配置安装的基本信息和选择安装的组件。环境变量部分将指导读者如何配置Nexus的环境变量,以便更好地使用Nexus。 其中,软件安装部分还对Nexus的安装模式进行了详细的...
本文旨在帮助您了解如何安装和配置Nexus 2.x版本,并通过实例演示如何搭建一个高效的私服仓库。 #### 适用范围与预期读者 本指南适用于所有使用Java技术栈进行软件开发的企业或团队。特别是对于那些希望提高构建...
通过以上步骤,你已经成功在Linux环境下安装了Maven,配置了Nexus服务器,并进行了基本的使用和配置。这将极大地提高你的Java项目管理和构建效率。记得定期更新Maven和Nexus,以保持最新的功能和安全性。
思科Nexus_7000入门经典手册和基本的安全配置
- Nexus 3默认可以通过 `http://your_server:8081/` 访问,首次启动会引导你进行基本配置,包括管理员账号的创建。 4. **Maven仓库管理** - Nexus 3作为Maven仓库,可以作为代理仓库,缓存远程Maven中央仓库的...
- CFS 是思科的一项私有特性,用于在 Nexus 设备间分发配置和数据变更,例如 NTP 配置等。 - 可以通过命令 `cfs ipv4 distribute` 和 `ntp distribute` 开启相应的 CFS 功能。 - 使用 `show cfs application` 和 `...
通过以上步骤,用户可以根据自己的需求灵活地配置和管理Nexus中的各种仓库类型,以支持不同项目的构建和依赖管理需求。Nexus的强大功能不仅限于这些基本操作,还包括权限管理、安全认证等多个方面,能够满足企业级...
- 针对生产环境部署,建议采用更高级的安全配置和性能优化措施。 - 如果遇到权限问题,可以通过设置合适的权限来解决。 #### 五、总结 本文详细介绍了在CentOS环境下使用Nexus搭建Maven私库的整个过程,包括环境...
登录 Nexus 后,需要进行一些基本配置,例如配置邮箱服务地址、用户密码、仓库类型等。仓库类型包括 group、hosted、proxy 和 virtual 等。hosted 仓库用于发布内部项目构件或第三方的项目构件,proxy 仓库用于代理...
在本节内容中,将会详细阐述思科NEXUS设备的安全配置,主要涉及远程管理协议SSH和TELNET的安全配置、基于角色的访问控制(RBAC)以及用户和角色的创建与权限分配。 首先,我们来看SSH和TELNET的配置。SSH(Secure ...
Nexus是一个开源的仓库管理器,主要用于存储和分发各种软件包,这些软件包包括Maven、npm、NuGet、...安装和配置Nexus是一个相对简单的过程,但是它能够带来的长期效益是巨大的,使得软件开发工作流更为顺畅和高效。
通过以上步骤,你可以成功安装并运行 Nexus 服务,并对其进行基本的管理和配置。Nexus 作为一款优秀的仓库管理工具,能够帮助开发团队更好地管理构建过程中的依赖关系,提高开发效率。希望本文对你有所帮助。
"Cisco Nexus 9000 Series NX-OS VXLAN Configuration...Cisco Nexus 9000 Series NX-OS VXLAN Configuration Guide提供了详细的配置指南和故障诊断方法,旨在帮助网络管理员和工程师正确地配置和管理NX-OS VXLAN网络。
2. Nexus基本系统管理:涉及Nexus交换机的基本管理和维护,包括系统初始化、软件升级、故障排查、日志管理等操作。这一部分是熟悉Nexus产品的重要基础,为后续深入配置提供了支持。 3. Nexus 7K配置VDC:VDC...
不同的 Nexus 版本安装方式略有不同,但使用方式基本相同。 第二步:解压安装文件 下载完成后,需要将安装文件解压到任意目录下。解压完成后,进入到 bin/jsw/windows-86-64 目录下,按照说明文档中的步骤将 Nexus...
通过本指南的介绍,读者不仅能够掌握基本的配置步骤,还能在实际环境中应用这些知识,从而提高数据中心网络的效率和安全性。随着技术的不断进步,掌握这类高端网络设备的配置能力将成为网络工程师的核心竞争力之一。
通过本文档的介绍,我们可以了解到如何安装和配置Nexus Repository Manager OSS,并了解其基本使用方法。对于希望集中管理软件包和依赖的企业来说,Nexus Repository Manager无疑是一个非常实用且高效的解决方案。...