读书人

Maven3实战札记09Maven的私服-Nexus常

发布时间: 2012-12-20 09:53:21 作者: rapoo

Maven3实战笔记09Maven的私服-Nexus常用功能

1.? 前言

其实介绍Maven私服的资料已经很多了,《Maven权威指南》、许晓斌老师的Blog都详细介绍了常用私服——Nexus的功能,在此为何笔者还要写一下呢,一个是笔者写的是常用的功能,本身Maven这东西就是使用层次,若不是研究Maven内核、扩展Maven,大可不必细究源代码,有那时间,还不如看看Mina的源代码。这里只是说说笔者常用到的私服搭建、使用。二就是总结出来也好给健忘的自己留个备份。三就是确实私服是公司内部Maven项目经常需要的东东,不总结一下,不足以体现出重视。Nexus是常用的私用Maven服务器,一般是公司内部使用。下载地址是http://nexus.sonatype.org/downloads/。笔者用的是nexus-oss-webapp-1.9.1.1-bundle版本,内部嵌入了Jetty。先安装、再启动。启动脚本在{nexus_HOME}\bin\jsw\windows-x86-32下面。Installnexus.bat是安装、Startnexus.bat是随机启动。默认是占用了您机器的8081端口。启动前请务必保证该端口未被占用。

2.? 常用功能简介

Nexus常用功能就是:指定私服的中央地址、将自己的Maven项目指定到私服地址、从私服下载中央库的项目索引、从私服仓库下载依赖组件、将第三方项目jar上传到私服供其他项目组使用。

开启Nexus服务后访问url地址http://127.0.0.1:8081/nexus,之后登录系统,用户名密码分别是:admin/admin123.

最频繁的就是点击左侧菜单栏的Repositories按钮
Maven3实战札记09Maven的私服-Nexus常用功能
?列出来的都是仓库,一般用到的仓库种类是hosted、proxy。Hosted代表宿主仓库,用来发布一些第三方不允许的组件,比如oracle驱动、比如商业软件jar包。Proxy代表代理远程的仓库,最典型的就是Maven官方中央仓库、JBoss仓库等等。如果构建的Maven项目本地仓库没有依赖包,那么就会去这个代理站点去下载,那么如果代理站点也没有此依赖包,就回去远程中央仓库下载依赖,这些中央仓库就是proxy。代理站点下载成功后再下载至本机。笔者认为,其实Maven这个自带的默认仓库一般情况下已经够大多数项目使用了。特殊情况时在配置新的仓库,指定url即可,一般熟悉ExtJS的人操作这个Nexus都没什么问题,单词不是很难,不明白的查查单词基本差不多。就是如果Sonatype公司对其做了国际化的处理就更好了。

下载Maven项目索引,项目索引是为了使用者能够在私服站点查找依赖使用的功能,我们先选择一个proxy类型的代理仓库——Apache Snapshots之后将它的下载索引项设为true,确认保存即可
Maven3实战札记09Maven的私服-Nexus常用功能
?Download storage location设为true,保存后后台会运行一个任务,点击菜单栏的Scheduled Tasks选项即可看到有个任务在RUNNING。 下载完成后,Maven索引就可以使用了,在搜索栏输入要搜索的项,就可以查到相关的信息。比如搜索关键字Struts。
Maven3实战札记09Maven的私服-Nexus常用功能
?就可以检索出它的相关信息,包括怎么配置依赖信息。我们要想使用这个私服仓库,先在项目pom中配置相关私服信息

<repositories><repository><id>nexus</id><name>nexus</name><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><name>nexus</name><url>http://127.0.0.1:8081/nexus/content/groups/public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></pluginRepository></pluginRepositories>

?这样这个Maven项目构建的时候会从私服下载相关依赖。当然这个配置仅仅是在此项目中生效,对于其他项目还是不起作用。如果相对Maven的其他项目也生效的话。需要修改全局的settings.xml文件。

<profile>  <id>nexus</id>  <repositories><repository><id>nexus</id><name>local private nexus</name><url>http://localhost:8081/nexus/content/groups/public</url></repository>  </repositories></profile><profile>  <id>nexus-snapshots</id>  <repositories><repository><id>nexus-snapshots</id><name>local private nexus snapshots</name><url>http://localhost:8081/nexus/content/groups/public-snapshots</url></repository>  </repositories></profile>  </profiles>  <activeProfiles> <activeProfile>nexus</activeProfile> <activeProfile>nexus-snapshots</activeProfile>  </activeProfiles>

?之后所有本机的Maven项目就在私服下载组件。

假如我们下载了Oracle的驱动程序jar包想给其他项目组使用,就需要上传该jar包。选中宿主库——3rd party,之后选择Artifact Upload上传至宿主空间。
Maven3实战札记09Maven的私服-Nexus常用功能
?上传成功后,可以看到如下效果


Maven3实战札记09Maven的私服-Nexus常用功能
?

自己开发的组件也可以通过以上方式上传。

3.? 总结

这一次仅仅介绍了常用的私服功能,因为这方面资料太多了。所以就不赘述了。下面共享几个链接

http://www.iteye.com/topic/306449

http://lichunlong0630.iteye.com/blog/897198

http://lj-zhu.iteye.com/blog/961540

?

读书人网 >编程

热点推荐