关注Maven2已经有很多天了,渐渐地感觉到这个项目管理工具的强大,最直接的体验就是无需再为引入jar包伤脑筋了(好多时候我们要从官网下载相关jar包,然后一个个的引入,弄不好就出现包引入冲突)。maven2为我们提供了便利功能,需要什么包,只需要在pom.xml里面添加 dependency属性就可以了,如果在Eclipse中使用maven2插件,添加jar包之前先在里面的索引搜索器中输入关键字,如果google中的联想功能一样,嘿,简直太牛掰了。我们都知道下载maven2后在不做其他配置的情况下,系统会从其官网下载我们所需要的jar包,这样会给官网带来很大压力,并且不适合公司内部开发。故在这种情况下,网上出现了一些私服,例如Artifactory,Nexus等,在这里讲述下nexus的配置。
1.【下载Nexus】首先在nexus的官网下载nexus的最新版本,我下载的是1.8.0.1的zip版本,大小是16M,解压到一个文件夹下。官网下载地址:http://nexus.sonatype.org/downloads/
2.【启动服务】打开bin目录,里面有不同系统下的应用,我的本子装大是32位的xp,所以使用windows-x86-32文件夹,进去后双击InstallNexus.bat文件,然后再双击ResumeNexus.bat启动Nexus的服务。
3.【管理员登入】当服务正常启动后在浏览器输入Nexus的URL:http://localhost:8081/nexus,注意这里默认的端口号是8081,打开页面后可以在右上角看到Login字样,点击登录,默认用户名admin,密码为admin123.
4.【上传自定义jar】登录成功后可以在左面的导航中找到Vews/Repositories下的Repositories,点击后可以在在打开的table页中看到仓库列表,这里选择其中一个,例如3rd party,单击这个名字,可以在下面看到一个Artifact Upload选项卡。打开在GAV Definition中选择GAV Parameters,在接下来的Group中选输入组织名,比如我可以写com.transnal.ucmanage, Artifact项输入artifactId 例如ucmanage,Version 1.0,Packaging:这里选择jar,之后上传一个自定义的jar文件(可以在eclipse里创建一个类导出jar文件),点击Add Artifact,Upload Artifact(s),上传成功后,在上边的3rd party上单击右键——Re-Index,然后刷新下这个列表,就可以看到下边多了.index文件夹和我们刚才上传相关的文件夹。
5.【Eclipse中使用Nexus】上传完我们自定义的jar后,接下来就是对其进行引用,来证明我们的私服搭建成功,先建立一个Maven2工程(我的Eclipse版本是3.5,Maven2插件是0.9.7),然后在工程上单击右键Maven上单击右键——Maven——Add Dependency,打开索引搜索器,添加刚才我们的依赖,输入ucmanage,这个时候因为我们没有将索引库添加进来,所以无法搜索到,现在我们打开Window——Show View,找到Maven Indexs打开窗体,看到已经存在三个地址,在空白处点击右键打开Add Index,在Repository URL 里输入http://localhost:8081/nexus/content/repositories/thirdparty
Index Update URL 里输入:http://localhost:8081/nexus/content/repositories/thirdparty/.index/
Repository Id 起个名字 thirdpartyIndex
OK,回到索引搜索器输入刚才的关键字可以查找到我们自定义的jar文件,添加到Maven2工程中。
注:我在添加自定义dependency后,却找到不到该包,控制台报miss......错误。考虑到可能是没有找到Nexus的路径,于是在工程pom.xml中加入如下代码通过:
1. <!--引入本地的jar下载服务地址开始-->
<repositories> <repository> <id>nexus</id> <url>http://localhost:8081/nexus/content/repositories/thirdparty</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexus</id> <url>http://localhost:8081/nexus/content/repositories/thirdparty</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories>
<!--引入本地的jar下载服务地址结束-->