临沂品牌网站制作,国内专业做网站,中国vpswindows野外农民工,网站开发人员任职资格为什么要搭建maven私有库#xff1f;
有位博主在2008年时这样写道#xff1a; 如果没有私服#xff0c;我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地#xff0c;而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪费…为什么要搭建maven私有库
有位博主在2008年时这样写道 如果没有私服我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽如果网速慢的话还会影响项目的进程。很多情况下项目的开发都是在内网进行的连接不到maven仓库怎么办呢开发的公共构件怎么让其它项目使用这个时候我们不得不为自己的团队搭建属于自己的maven私服这样既节省了网络带宽也会加速项目搭建的进程当然前提条件就是你的私服中拥有项目所需的所有构件。总之在本地构建私服的好处有1加速构建2节省带宽3节省中央maven仓库的带宽4稳定应付一旦中央服务器出问题的情况5控制和审计6能够部署第三方构件7可以建立本地内部仓库8可以建立公共仓库但对于现在2018年的带宽和网络情况来说上面的好处已经不那么明显了。结合本人maven使用经验来回答在多人协同开发时开发人员开发的项目jar包如果还是在开发人员本地电脑的maven库上是不合理的需要一个可以大家都能访问的maven库。 这个库是maven公共库吗如第三方的阿里巴巴maven库maven中央库 显然是不可以的只要是商业项目谁愿意把自己的代码maven install 到别人的maven库里这样别人就知道你的代码了相当于开源一样了除非做开源项目。 还有项目有时候会加入购买的第三方商业工具这些工具的jar包也要放到一个maven仓库里。 为什么要用Sonatype Nexus做maven的私有仓库 原因很简单Sonatype Nexus就是仓库管理工具而且稳定好用。Sonatype Nexus2.x支持的仓库 Sonatype Nexus3.x支持的仓库 Sonatype Nexus官网http://www.sonatype.org/nexus/ 本文以2.x版本因为maven仓库的支持够了。 3.x的版本更新太大了安装文件目录结构都变了。 搭建过程 1、下载Nexus 2.x版本 2、解压 # mkdir nexus # tar -zxvf nexus-2.11.2-03-bundle.tar.gz -C nexus # cd nexus # ls nexus-2.11.2-03 sonatype-work (一个nexus 服务一个私有库目录) 3、编辑Nexus 的nexus.properties 文件,配置端口和work 目录信息 # cd nexus-2.11.2-03 # ls bin conf lib LICENSE.txt logs nexus NOTICE.txt tmp 查看lib下的jar包发现是基于jetty 运行 保留默认不用改除了端口8081看看是否冲突 # cd conf # vi nexus.properties # Jetty section application-port8081 application-host0.0.0.0 nexus-webapp${bundleBasedir}/nexus nexus-webapp-context-path/nexus # Nexus section nexus-work${bundleBasedir}/../sonatype-work/nexus runtime${bundleBasedir}/nexus/WEB-INF 4、编辑nexus 脚本, 配置RUN_AS_USER 参数 # vi /root/nexus/nexus-2.11.2-03/bin/nexus #RUN_AS_USER 改为 RUN_AS_USERroot 5、防火墙中打开8081 端口 # vi /etc/sysconfig/iptables 添加 -A INPUT -m state --state NEW -m tcp -p tcp --dport 8081 -j ACCEPT 保存后重启防火墙 # service iptables restart 6、启动nexus # /root/nexus/nexus-2.11.2-03/bin/nexus start **************************************** WARNING - NOT RECOMMENDED TO RUN AS ROOT **************************************** Starting Nexus OSS... Started Nexus OSS. 7、配置开机启动 vi /etc/rc.local 增加下面行 /root/nexus/nexus-2.11.2-03/bin/nexus start 8、浏览器中打开http://192.168.78.132:8081/nexus/ 9、登录默认用户名admin,默认密码admin123 10、Nexus 配置 登录后 1、菜单Administration/Server 配置邮箱服务地址 该邮箱发送通知消息用 给用户配置邮箱地址方便忘记密码时找回和接受通知 仓库类型 group 仓库组Nexus 通过仓库组的概念统一管理多个仓库这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库。hosted 宿主仓库主要用于发布内部项目构件或第三方的项目构件如购买商业的构件 以及无法从公共仓库获取的构件如 oracle 的 JDBC 驱动 proxy 代理仓库代理公共的远程仓库virtual 虚拟仓库用于适配 Maven 1一般用到的仓库种类是hosted、proxy Hosted 仓库常用类型说明 releases 内部的模块中release 模块的发布仓库发行版稳定版可用于生产 snapshots 内部的模块中SNAPSHOT 模块的仓库 内测版开发版 3rd party 第三方依赖的仓库这个数据通常是由内部人员自行下载之后发布上去 Maven 依赖包下载流程 如果构建的Maven 项目本地仓库没有对应的依赖包那么就会去Nexus 私服去下载 如果Nexus私服也没有此依赖包就回去远程中央仓库下载依赖这些中央仓库就是proxy。 Nexus 私服下载成功后再下载至本地Maven 库供项目引用。 设置proxy 代理仓库准许远程下载
设置Apache Snapshots/Central/Codehaus Snapshots等proxy代理仓库允许远程访问