实际项目中,我们往往都是多人开发,这个时候,假如一个项目有300多M.用的jar包有100多个.只要项目组来一个人就从中央仓库下载依赖的jar,这种下载一般都需要持续很久.而且中央仓库一般都是配置在外网的.这种代价和传输是很慢和不划算的.这个时候,我们就需要构建自己的私服,即

开发人员->私服(局域网)->中央仓库(外网)

这个时候,开发人员,会首先访问私服看有没有jar有的话,直接从私服下载,没有的话,会从中央仓库中寻找.大大提高了传输的效率.

私服搭建工具

当然,目前最流行的私服搭建工具就是:sonatype Nexus

我们可以自己去下载http://www.sonatype.org/  下载需要翻  墙.我这里提供一个,我今天刚下载的哈.百度网盘.

链接:http://pan.baidu.com/s/1mgzUJsW 密码:4wip

下载好后,是个压缩包,直接解压.然后找到bin目录,将此目录配置到环境变量.

配置环境变量后,打开cmd以管理员命令,窗口输入:nexus

看到这个图,说明已经安装成功.

安装私服

nexus install(该命令需要管理员权限)

会自动安装.安装成功后,我们可以输入net start nexus

当提示启动成功后,打开浏览器输入:http://locahost:8081/nexus;   用户名和密码:admin/admin123.

私服的使用

私服的界面

在这个界面我们能看到type为group,hosted,proxy,virtual(不常用).大概四中类型.其中常用的是group,hoste,proxy

hosted:是开发人员开发完项目,提交到这里面(hosted分别有:Releases,Snapshots对应maven开发项目中的version,3rd party表示从pom文件或者某一个jar)

通常开发中,我们用group类型对应的中央工厂来部署:

复制右边的私服链接,打开我们的pom.xml在里面添加:

<!-- nexus私服配置 -->
<repositories>
<repository>
<id>nexus</id>
<name>Nexus Repository</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<!--snapshots默认是关闭的,需要开启  -->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>

这个时候,我们的私服就搭建好了.

私服搭建最佳实践

按照上面配置是实现了私服搭建,但是,这样的配置,如果我们创建一个项目,就需要配置一次,很麻烦.有没有一种方法,只让我们配置一次,后面都不需要配置呢?

我们知道,maven有个setting.xml,其实,我们可以将上面的私服配置在maven的setting.xml里面.这样就可以实现了.

最新文章

  1. 浅述python中argsort()函数的用法
  2. psd做成HTML相关参考页面
  3. java动态生成带下拉框的Excel导入模板
  4. Java IO (4) - Writer
  5. 如何使用chown?
  6. MYSQL命令行连接数据库
  7. unity的坑
  8. 未找到具有固定名称&ldquo;System.Data.SQLite&rdquo;的 ADO.NET 提供程序的实体框架提供程序
  9. 上curl java 模拟http请求
  10. Spring Boot 学习之项目构建
  11. hdu_1698Just a Hook(线段树)
  12. centos/linux下的安装mysql
  13. apt查找安装包
  14. 二十二、Spring MVC与Structs2的区别总结
  15. webpack 支持的模块方法
  16. QtCore是Qt的精髓(包括五大模块:元对象系统,属性系统,对象模型,对象树,信号槽)
  17. HDU6027 Easy Summation 2017-05-07 19:02 23人阅读 评论(0) 收藏
  18. Entity Framework工具POCO Code First Generator的使用
  19. 用 python 抓取知乎指定回答下的视频
  20. Appium+python HTML测试报告(2)——一份报告模板(转)

热门文章

  1. 《原创视频》牛腩学docker简记
  2. (原创)C++ 同步队列
  3. C# 取得某月的最后一天和第一天
  4. IfcAxis2Placement3D
  5. fashion MNIST识别(Tensorflow + Keras + NN)
  6. leetcode No.500 键盘行 keyboard-row (Python3实现)
  7. spring中RequestBody注解接收参数时用JSONField转参数名无效问题
  8. 【python基础】setproctitle的安装与使用
  9. shell脚本检查是否存在tun0虚拟网卡,若不不存在服务器更改port,并重启服务器,客户端修改port,并重新启动客户端
  10. POWER 740硬盘更换步骤