Maven 使用 二——nexus
上篇博客介绍了创建maven项目的两种方式,当中一种是使用命令行的方式来创建,这种情况非常少,一般我们都有IDE开发环境。所以接下来,我们还是在一个详细的IDE中来说,我使用的是Eclipse。
一、nexus
maven的使用,当中一点便利就是对jar包的引用。我们不再须要费力的去拷贝jar,还有jar包的版本号的统一等。弄得项目中存在不同程度的jar包冗余,甚至不同模块的jar包版本号还不统一。
通过Maven,终于我们仅仅须要共享一份同样的资源就可以。
我们的local repository 的资源都是来自同一个地方:central repository。这个central repository 全世界仅仅有一个。资源甚多,我们开发项目须要的资源仅仅是沧海一粟,这来回訪问。消耗的时间怎么算。假设网不好,有怎么说?其二。central repository是为全人类服务的。那我们须要的那点资源也无法被我们管理;其三,团体项目不仅须要下载jar包,很多其它的时候,也须要把开发的jar包,像central repository中的资源一样。放到一个团体共享的地方,被团队调用。于是 nexus 出现了。
Nexus 是Maven仓库管理器,假设你使用Maven,你能够从Maven中央仓库 下载所须要的构件(artifact)。但这通常不是一个好的做法。你应该在本地架设一个Maven仓库server,在代理远程仓库的同一时候维护本地仓库。以节省带宽和时间。Nexus就能够满足这种须要。此外。他还提供了强大的仓库管理功能,构件搜索功能,它基于REST。友好的UI是一个extjs的RESTclient。它占用较少的内存,基于简单文件系统而非数据库。
这些长处使其日趋成为最流行的Maven仓库管理器。
nexus + maven 能给我们带来极大便利。
二、Nexus 安装
Nexus通常是搭建在局域网内的,共团队合作开发。管理jar包。
你能够从http://nexus.sonatype.org/downloads/ 下载最新版本号的Nexus。Nexus提供了两种安装方式,一种是内嵌Jetty的bundle,仅仅要你有JRE就能直接执行。
另外一种方式是WAR,你仅仅须简单的将其公布到web容器中就可以使用。我使用的就是第一种方式,另外一种木有尝试。
bundle方式安装
- 解压nexus-2.5.1-bundle.zip到D:\nexus\nexus-2.5.1-bundle\(可自己定义)
- 进入nexus\nexus-2.5.1-01\bin\jsw 进入对应的系统目录(若系统位64位,jdk位32位。则应进入32位的目录下,如:win8 64位系统安装32位JDK,则进入windows-x86-32目录)
- 右键install-nexus.bat 文件,使用管理员权限执行。第一次执行界面一闪而过,能够再次执行确定是否成功
右键start-nexus.bat 文件。使用管理员权限执行。成功之后对话框消失,若出现错误,请确认nexus与JDK版本号是否匹配。规则例如以下:
1.6的JDK支持2.5版本号下面的Nexus
1.7版本号的JDK支持2.6版本号下面的Nexus
64位的系统相对上述规则支持的Nexus版本号更低浏览器输入http://192.168.24.252:8081/nexus (192.168.24.252为nexus安装serverip地址),出现例如以下界面则nexus成功安装。
8081为默认的port号。要改动port号可进入nexus-2.1.2-bundle\nexus-2.1.2\conf\打开nexus.properties文件,改动application-port属性值就能够了。开启远程索引
通常到这里,对于nexus的安装还不算完美, 新搭建的neuxs环境仅仅是一个空的仓库,须要手动和远程中心库进行同步。nexus默认是关闭远程索引下载,最重要的一件事情就是开启远程索引下载。登陆nexus系统,默认usernamepassword为admin/admin123。
点击左边Administration菜单下面的Repositories。找到右边仓库列表中的Central,——》configuration下把Download Remote Indexes改动为true。例如以下图
等待其下载完毕。有时网速比較慢,可能等待的时间比較长,是否如今成功,在 browse index 中进行验证。如图:
假设下载完毕,能够体验一下效果,在左边菜单条里面有个Artifact Search, 在输入框里面输入你想要搜索的构件名字,比方:junit, 右边显示出全部的查询结果,就成功了。
三、nexus 配置
repository
nexus的仓库类型分为下面四种:
group: 仓库组
hosted:宿主
proxy:代理
virtual:虚拟
同一时候 nexus中存在 repository group的概念,利用这个group 能够进行批量的管理。
每一个repository的简要解释例如以下:
1. 3rd party: 无法从公共仓库获得的第三方公布版本号的构件仓库
2. 特定repository ,有两个。 Apache Snapshots和 Codehaus Snapshots,分别代理ApacheMaven和CodehausMaven 仓库的快照版本号构件的仓库
3. Central: 用来代理maven中央仓库中公布版本号构件的仓库
4. Central M1 shadow: 用于提供中央仓库中M1格式的公布版本号的构件镜像仓库
5. 内部版本号repository: Releases和Snapshots。
当然我们也能够自己创建repository。
authority
在权限设置这块,仅仅要包括下面三个部分。
1. privilege
2. role
3. user
我们能够自己定义设置这三个部分。顺序由上自下,操作步骤都非常easy,这里就不做演示。
nexus能够让maven变得更强大。他们之间的关系图例如以下: