Maven学习 (四) 使用Nexus搭建Maven私服
为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库。
1.首先确定我们的环境安装好maven,jdk等必须的环境
2.这些都准备好之后,去下载最新版本的nexus 下载地址:http://www.sonatype.org/nexus/go
我本地安装的是 nexus-2.2-01-bundle,最新的版本是nexus-2.4.0-09-bundle
3.打开目录nexus-2.4.0-09-bundle\nexus-2.4.0-09\bin\jsw 这个目录下面你会发现有很多系统版本的nexus环境
我的电脑是win7 (64)为的系统,所以我选择的是windows-x86-64这个版本,当然可以根据个人的电脑系统选择对应的版本
打开一个版本你会看到如下:
我一般都是将nexus安装成windows服务,所以点击install-nexus.bat这个,访问http://localhost:8081/nexus/ 启动后如下页面,在右上角有个Log in 的超链接,点击登录
默认的用户名是 admin 密码是 admin123
登录后你可以在左侧修改登录信息:
4.接下来,我们配置一下maven的代理服务器(前提是你的电脑不能连接外网,如果可以上外网,这里也没有意思,只是介绍一下)
在左侧菜单找到如图:
点击查看右边有很多选项,找到这里
添加你的代理服务器就可以了。
5:接下来,好像这里都不需要怎么配置的,反正我没有用到很多的功能,可能是技术学得不好,不会用,呵呵….
对了,这里还有一个可能需要注意一下的,就是3rd party、Snapshots、Releases这三个,分别用来保存第三方jar(典型的oracle数据库的j驱动包),项目组内部的快照、项目组内部的发布版.
我目前只是用3rd party这个第三方的功能,将maven仓库中没有构件的jar包上传到服务器。如何将第三方的jar上传到nexus上面呢?如下:举例上传oracle的驱动包
那么现在nexus已经安装好,怎么使用上传的jar包吧,很简单的,前提是你已经建立了一个maven的项目。含有pom.xml这个文件,在这个文件中添加如下:
先去服务器看看jar的maven构件
然后在pom.xml中添加如下的本地仓库地址:
1 <repositories> 2 <repository> 3 <id>nexusid> 4 <name>Team Nexus Repositoryname> 5 <url>http://localhost:8081/nexus/content/groups/publicurl> 6 repository> 7 repositories> 8 <pluginRepositories> 9 <pluginRepository> 10 <id>nexusid> 11 <name>Team Nexus Repositoryname> 12 <url>http://localhost:8081/nexus/content/groups/publicurl> 13 pluginRepository> 14 pluginRepositories> 15 <dependencies> 16 <dependency> 17 <groupId>com.oraclegroupId> 18 <artifactId>ojdbcartifactId> 19 <version>10.1.0.2.0version> 20 dependency> 21 dependencies>
到此,完成了nexus私服的搭建,项目组开发人员开发时,只要在项目的pom.xml文件中,添加如下pom.xml信息即可获取私服的jar.
如果添加其他的构件时,会先在nexus私服下载好,以后才会下载到本地。以后,如果发现私服已经存在某一jar包,则会直接从私服下载,如果没有再去网络上下载。这就是搭建私服的好处。哈哈……..
所以很有必要搭建maven私服。
—————————————————————————————————————————————–
自己补充的内容 begin
1、下载nexus,地址:http://www.sonatype.org/nexus/go
2、下载完之后就是这个了:文件nexus-2.14.2-01-bundle.tar.gz 我这个是目前最新的版本了,下载完之后就可以它传到Linux中了,可以先在linux中创建一个目录nexus
1
2
3
4
|
# mkdir nexus
# cd nexus
# rz 上传文件
# tar -xzvf nexus-2.14.2-01-bundle.tar.gz
|
解压之后就会看到两个目录:
nexus-2.14.2-01
sonatype-work
nexus-2.14.2-01:里面是nexus的运行环境和应用程序
sonatype-work:里面是我们后面要对nexus进行一些配置的地方,像索引和起始的仓库和端口等都可以在这里面配置。
3、启动nexus
# cd nexus-2.14.2-01/bin # ls jsw nexus nexus.bat # ./nexusUsage: ./nexus { console | start | stop | restart | status | dump } # ./nexus start **************************************** WARNING – NOT RECOMMENDED TO RUN AS ROOT **************************************** If you insist running as root, then set the environment variable RUN_AS_USER=root before running this script. 启动不了,提示这个。 大概意思就是要在环境配置export RUN_AS_USER=root,临时配置 在命令行下输入: export RUN_AS_USER=root 然后执行,就不会再提示了 ./nexus start 也可以在系统里面永久配置 vim /etc/profile 加入export RUN_AS_USER=root
启动成功:
# ./nexus start Starting Nexus OSS... Started Nexus OSS. # ./nexus console Running Nexus OSS...Nexus OSS is already running.
查看日志:
# tail -f ../logs/wrapper.log
3、页面访问:http://youhostname:8081/nexus
看到如下页面:
注意:nexus的默认端口是8081,后面可以修改
用默认账户和密码登录
账户:admin
密码:admin123
登录之后
3rd party、Snapshots、Releases这三个,分别用来保存第三方jar、项目组内部的快照、项目组内部的发布版.
配置中央仓库自动更新索引:
4、将第三方jar上传到nexus
上传之后搜索……
这样基本maven私服就搭建完成了,并且上传了自己的jar包。
私服Nexus搭建完毕之后,由于网络原因,有时候会出现索引更新不了的问题,这里给出一种离线更新索引的方式。
因为此时maven私服里面是没有索引和其他jar包的,所以要把自己的索引和平时用的maven仓库上传到nexus的指定位置覆盖原来的索引和仓库.
进入到sonatype-work/nexus/indexer目录中,这里面就是上面说的可以自己修改和配置的地方。
1
2
|
# cd sonatype-work/nexus/indexer
# ls
|
#cd sonatype-work/nexus/storage/
# ls
把自己的的索引和maven仓库上传到对应位置重新启动nexus就可以了
# ./nexus restart
===========================================================
如果手上没有索引,按照步骤找到所需要的索引:
第一步:下载索引文件
nexus-maven-repository-index.gz
nexus-maven-repository-index.properties
下载地址:
http://repo.maven.apache.org/maven2/.index/
第二步:下载解压工具
下面就是解压这个索引文件,虽然后缀名为gz,但解压方式却比较特别,我们需要在GitHub下载Apache的一个indexer-cli jar包 {[indexer-cli](https://github.com/apache/maven-indexer)}【需要自己打包获得jar,或者到网上下载jar】: [indexer-cli-5.1.1.jar](https://repo.maven.apache.org/maven2/org/apache/maven/indexer/indexer-cli/5.1.1/ “indexer-cli-5.1.1.jar”) ,我们需要通过这个特殊的jar来解压这个索引文件
注:indexer-cli-5.1.1.jar是专门用来解析和发布索引的工具。
第四步、命令解压
将上面三个文件(.gz & .properties & .jar)放置到同一目录下,例如我放置在了/usr/local/software/nexus-software文件夹下面。 运行命令如下:
a、定位到 /usr/local/nexus-software
cd /usr/local/software/nexus-software
b、执行解压命令
java -jar indexer-cli-5.1.1.jar -u nexus-maven-repository-index.gz -d indexer
之后,会在/usr/local/nexus-software自动生成一个 indexer文件夹,大概十几分钟吧,命令执行完毕,indexer文件大小会 达到700M多点,然后indexer内的文件拷贝到私服{nexus-home}/sonatype-work/nexus/indexer/central-ctx目录下,重新启动nexus,索引更新完毕!
cp -rf indexer/* /usr/local/nexus/sonatype-work/nexus/indexer/central-ctx/
========================================================
然后把maven仓库传上去之后,重启服务器查看私服:
此时随便搜索一个jar包,这里就是通过刚才上传的索引来搜索jar包了,比如搜:junit
如果你想修改nexus的默认端口,可以在nexus-2.14.2-01/nexus/conf/ 文件夹下的nexus.properties文件中修改application-port指定的默认端口,修改完之后重新启动,就可以通过自己设定的指定端口访问maven私服了。
===========================================================
连接私服,下载jar包
./自己补充的内容 end
转自:[Maven学习 (四) 使用Nexus搭建Maven私服](http://www.cnblogs.com/quanyongan/archive/2013/04/24/3037589.html)