1.说到Maven,做过Java开发的基本上都知道它的作用,为了解决jar包的下载,jar包的依赖关系。
2.具体使用需要下载Maven的客户端,然后需要设置setting文件,改变本地仓库地址,改变远程仓库地址;如果不改变,就是使用的默认的。
3.Maven的下载jar的整个逻辑是先在本地仓库查找jar,如果没有找到对应的jar,就去配置的远程仓库去找jar(需要访问外网),假如还没有找到,说明某些仓库是没有的,可能jar是私有的,可以下载下来,单独导入项目;正常流程如下图
1.情况分析:上面说到Maven去远程仓库找jar,需要访问外网,那么假如工作环境是内网情况,那么本地仓库的jar又不全,那这种情况有两种情况:
第一种就是每个人把本地仓库的jar全部下载全了,一次性拉到内网环境进行使用;
第二种情况就是远程仓库的jar能不能挪到自己的内网环境。
2.然而第一种方式可能不是一劳永逸,另外每个人都去拉一边全部的库,这个拷贝起来,相互分享可能耗时耗力;而第二种方式,虽说不是一劳永逸,但是这种方式,对于一个公司,一个企业来说是件好事,因为公司有了自己的私服,所有的人都连接这个私服去下载,只要有一人下载了其中某个jar,那下次别人需要用的时候就不需要再次去远程下载了;随着时间的推移,公司的私服Maven库会越来越全。
3.对于在内网情况下,利用一台单独的服务器,可以上外网,然后搭建一套私服,那是非常完美的事情。假如环境不允许,也可以将在外网搭建好的私服,下载好的jar一次性导入公司自己的私服,(前期jar不全的情况,可能是要手动维护的)这样即使在内网环境,每个人都不需要用U盘去拷贝所需要的jar,方便,快捷,并且能够统一管理。
上面扯了那么多,下面进入正题,maven私服怎么搭建
网站 : http://nexus.sonatype.org/
下载地址:http://www.sonatype.org/nexus/archived/
下载zip包(开发起来比较麻烦)
下载war包 (推荐)
nexus-2.7.0-06.war ---------- 复制任何web服务器中运行 (tomcat/webapps )这里不做讲解,大家应该都会。
访问私服
这里有一个默认的用户名和密码是
admin/admin123
进入界面,我们可以看到
里面默认包含7个仓库配置,四种类型
1.group(仓库组): 一组仓库, 当使用坐标,按照组内顺序查找
2.hosted(宿主) :私服
3.proxy(代理) :私服(通过私服去连接 apache或者 中央仓库)
4.virtual(虚拟) 兼容maven1格式
具体每个是什么意思,见名知意。
另外几个关键词解释一下:
Releases : 指公司内部已经发布正式版本的项目 (自己开发)
Snapshorts : 指公司内部项目还处于测试版本的项目 (自己开发)
3rd party : 私服配置指向第三方仓库 (其它公司私服 )
找到所在用户下的这个目录,这个目录是Nexus在tomcat中运行后就自动生成的。
(这个目录可以更改的,建议更改一下,不然占用c盘的资源,更改见后面,自己摸索的)
【第一步】indexr 仓库索引 (搜索坐标 就是搜索索引 )
默认没有任何索引
这个索引的作用是为了在自己配置的私服中搜索的时候下面出现jar的内容。
这个索引是在网上下载的,当自己的库里面jar内容更新了如果之前的索引没有的话,那么在自己配置的私服中搜索新增的jar就搜索不到,只能去下载最新的索引。
【第二步】storage 存放jar包 (就是库)
这里的文件夹是和界面上的库对应的,首先可以考虑将已有的库文件导入进来,也可以等他慢慢下载,后期如果是内网,需要维护的也就是在这里,前期需要自己手动导入,供团队使用。
【第三步】更改库的路径,重新运行restart tomcat服务器,然后访问页面,你就发现,你可以使用私服了,这一步不操作也可以。
将本地的maven的setting文件远程仓库修改
上面的路劲和这个保持一致。
然后验证是否生效的方式
1、日志文件sonatype-work/nexus3/log/下 。
2、验证:将maven的setting.xml仓库设置指向私服—>删除本地仓库某个在用的jar—>maven重新import—>服务器上同时查看网络连接可以看到有连接到的地址是否是配置的地址,另外是否有下载速度,另外可以去私服的库里面查看一下下载的文件。
在私服平台上面点击添加代理库
然后需要配置一下远程下载的路径:http://maven.aliyun.com/nexus/content/groups/public/
注意事项:
1.这里要修改,自己假如的阿里云的私服和中央仓库,都需要改,默认为true
2.这样才能自己的私服才能访问远程仓库;改完之后这里需要刷新一下。
3.这里的一个策略,优化一下下载的顺序,将自己的配置的阿里云的仓库排在前面。阿里的库下载速度比中央仓库要快。
这项用的比较少,一些大公司,自己封装的一些jar,这样搞,共享比较好。
【第一步】: 在本地maven 的settings.xml 配置连接私服用户名和密码
sonatype-work\nexus\conf\security.xml 提供私服内部用户名和密码 (密码加密)
内置账户 : admin/admin123
在maven的setting.xml中添加nexus服务器账号:
releases
admin
admin123
snapshots
admin
admin123
第二步: 修改工程pom.xml ,让当前的项目可以发布到私服中
releases
www-releases
http://localhost:8081/nexus-2.7.0-06/content/repositories/releases/
snapshots
www-snapshots
http://localhost:8081/nexus-2.7.0-06/content/repositories/snapshots/
上面的配置中有自己配置的私服的地址
运行 mvn deploy
个人原创,转载需声明!