最近研究了下Maven的知识,多数都是老文章,网上的也是互相粘贴,苦了初学者,经过2天的琢磨,终于搭建出了eclipse3.4+maven2+nexus的开发环境,写出心得,只供初学者参考,老鸟们多给点意见
eclipse:最新的ganymede3.4
m2eclipse:eclipse的maven插件,安装这个插件需要wtp
maven:版本2.0.9
nexus:不知道这个东西的话,先姑且将它先理解为管理maven库的一个服务器
下载地址:http://nexus.sonatype.org/
当时在网上看视频教程,发现一个老外很牛逼的在eclipse下打开了maven搜索窗口,然后敲了包名,就自动的列出来了需要的jar库,选择之后,就自动的添加到了工程了。那时瞬间感受到了maven的强大,因为自己饱受手动为项目添加jar的辛苦,java的开源库种类繁多,版本凌乱,不但使用起来麻烦,弄不好还会引起互相依赖间的冲突,本人曾经就为ejb3和hibernate3之间冲突引起的莫名其妙的异常头大了很久。而maven里有个很有用的作用就是管理项目的jar库。
如果不明白maven是做什么的,关于它如何安装和使用,以及如何管理类库,本地库,远程库,这样的概念,网上可以搜一下,多数内容一样,也没有难点。我主要说一下自己如何建立一个maven私服的,网上建立私服的例子试了很多次,不好用,maven搜索里搜不到自己上传的jar,好像是因为没有索引的原因。
nexus是一个管理jar库的工具,很多maven类库网站都使用了类似的工具具,以后想找库了也可以直接访问下http://repo1.maven.org/maven2,里面的库很全,版本也很多
先要下载好nexus,选择zip版,这种版本自带jsp容器,直接用运行bat批处理,启动服务器,之登陆,进入管理界面,点击administration下的Repositories,在release项上右键,选择upload artifactory,随便上传一个jar,假设这个jar库里的包是com.molan.test,上传后需要填groupID和artifactoryID,groupID填 com.molan,artifactory填 test
关于这两个ID如何填,一般来说。拿struts2举例,假设上传了一个叫struts2-core的jar,这个jar里包名为org.apache.struts2.core.....
所以groupID填:org.apache,也可以填org.apache.struts, 相当于你的公司和组织名。这个在搜索库的时候要用到,artifactoryID就填struts2,或者填core,官网上的结构是org.apache.struts.struts2
上传好了后,可以点开relesase看看, 然后右键,选择re-index, 等一会,让程序生成index,之后刷新,就可以看见relesase下多了个".index"目录,这个目录很重要,是nexus里库的一个索引,搜索库全靠它了。
之后,进update中心,安装好m2eclipse插件,(更新站点地址网上可以搜),这个插件基本功能需要Web Tool Paltform俗称WTP,某些附加功能还用aop,sub插件,可以选择不安装。新建一个maven工程,然后在pom.xml上点右键,选add dependency,会弹出个搜索菜单。输入com.molan.test,并没有出现刚才上传的jar,这是因为在eclipse下没有配置nexus的索引。所以找不到自己上传的库。不着急,在eclipse下点windows-show view-other,选择maven-index view,这时会看见三个默认的index, wrokspace、local、central、新建一个index
,repository url填“http://localhost:8081/nexus/content/repositories/releases”
index url填“http://localhost:8081/nexus/content/repositories/releases/.index/”
OK后,console下就能看见成功的updata提示了。 这时候再去maven的搜索菜单,输入com.molan, 就能发现自己上传的 com.molan.test库了。
设立自己私服库的目的,1:为了方便团队对项目的管理,maven初衷也是如此,2:本身maven默认是从官网下载库的,但事实上公司团队设立一个内部库是标准的选择,也是maven提倡的,即减轻了官网负担,又可以自定义库名以及上传和下载官网所没有的库。