`
suhuanzheng7784877
  • 浏览: 691644 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Ff8d036b-05a9-33b5-828a-2633bb68b7e6
读金庸故事,品程序人生
浏览量:47234
社区版块
存档分类
最新评论

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按钮

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

下载Maven项目索引,项目索引是为了使用者能够在私服站点查找依赖使用的功能,我们先选择一个proxy类型的代理仓库——Apache Snapshots之后将它的下载索引项设为true,确认保存即可

 Download storage location设为true,保存后后台会运行一个任务,点击菜单栏的Scheduled Tasks选项即可看到有个任务在RUNNING 下载完成后,Maven索引就可以使用了,在搜索栏输入要搜索的项,就可以查到相关的信息。比如搜索关键字Struts

 就可以检索出它的相关信息,包括怎么配置依赖信息。我们要想使用这个私服仓库,先在项目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上传至宿主空间。

 上传成功后,可以看到如下效果



 

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

3.  总结

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

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

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

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

 

  • 大小: 200.3 KB
  • 大小: 98.9 KB
  • 大小: 203.3 KB
  • 大小: 45 KB
  • 大小: 49.2 KB
6
1
分享到:
评论
3 楼 xisuchi 2013-07-18  
可否将上面的url配置在<mirror>中 二者有啥区别
2 楼 youjianbo_han_87 2012-12-07  
youjianbo_han_87 写道
Download storage location设为true

这个选项没有找到啊

还有个问题,这个选项没有找到。我就在 Scheduled Tasks 里面自己建了一个任务,run。但是很快就完成了,结果那一列显示 OK[0s] 啥也没下下来啊。
1 楼 youjianbo_han_87 2012-12-07  
Download storage location设为true

这个选项没有找到啊

相关推荐

Global site tag (gtag.js) - Google Analytics