私服的介绍
1 什么是私服
私服是一种特殊的远程仓库,它是架设在局域网的仓库服务,私服代理广域网上的远程仓库,供局域网使用。
在企业开发中,私服的建设是有必要的,其好处如下:
1.1 节省资金、外网带宽
利用私服代理外部仓库之后,对外的重复构件下载便得以简化,降低外网带宽压力。
1.2 加速Maven构建
不停地连接请求外部仓库是相当耗时的,但是 maven 的一些内部机制(如快照更新检查)要求 Maven 在执行构建的时候不停地检查远程仓库数据。因此,当项目配置了很多外部远程仓库的时候,构建速度会降低。使用私服解决这问题,因为 Maven 只需要检查局域网内私服的数据时,构建速度便有明显提高。
1.3 部署第三方构件
当某个构件无法从任何一个远程仓库获取怎么办?比如 Oracle 的 JDBC 驱动由于版权原因不能发布到公共仓库中。建立私服后,便可以将这些构件部署到这个内部仓库中,供内部 Maven 项目使用。
1.4 提高稳定性,增强控制
对于远程仓库来说,当外网不可用时,Maven 构建有可能因为依赖没有下载而不可行, 搭建并应用私服后,即使没有外网,如果该构件之前被其它人下载过就会存在私服上,此时再次依赖该构件就可以不用连接外网直接就可以从私服上下载到。同时私服软件(nexus)还提供了额外的管理功能。
1.5降低中央仓库的负荷
中央仓库是有限的。如果所有的 Maven 工程开发过程中,都通过中央仓库实现构件的依赖和管理,那么中央仓库的负荷过高,也会严重影响工程构建的效率。如果使用私服,可以分散中央仓库的负荷,只有在私服中没有需要依赖的构件时才会去连接中央仓库。
2 nexus私服搭建
2.1搭建环境
环境:CentOS6.5、JDK7、Sonatype Nexus、Maven(Eclipse 或 MyEclipse)
2.2搭建步骤
2.2.1安装JDK
在 Linux 中安装应用的常用目录为:/opt 或/usr/local 目录。本课件将 JDK 安装到
/usr/local/java 目录中。
解压JDK 到指定目录:
tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/local
重命名JDK 目录:
mv /usr/local/jdk1.7.0_80 /usr/local/java
2.2.2 环境变量配置
修改/etc/profile 配置文件,增加环境变量配置。
环境变量修改后,可以重启 Linux 实现永久生效;或执行 source /etc/profile 命令,让新修改的环境变量在当前终端中生效。
3 安装私服Nexus
3.1 Nexus资源包下载
Nexus 官 方 下 载 地 址 为 : https://www.sonatype.com/nexus-repository-oss 本课件应用版本为:nexus-2.11.2-03
3.2 Nexus资源包解压
在/usr/local 目录中创建子目录 nexus: mkdir /usr/local/nexus
解压Nexus 到指定目录:
tar -zxvf nexus-2.11.2-03-bundle.tar.gz -C /usr/local/nexus
3.3 目录介绍:
Nexus 压缩包中包含两个子目录: nexus-2.11.2-03 和sonatype-work
nexus-2.11.2-03 是具体的私服应用内容,sonatype-work 是Nexus 私服下载的构件存放工作目录。
3.3 检查私服端口和工作目录
在 nexus-2.11.2-03 目录中有子目录 conf ,其中保存私服应用的配置信息。查看nexus.properties 文件,确定私服访问端口和工作目录。此操作可不做任何内容修改。配置文件内容如下:
# Jetty section,Nexus 私服应用是使用Jetty 提供 web 服务的下述内容为Jetty 配置:application-port=8081 # 私服访问端口application-host=0.0.0.0nexus-webapp=${bundleBasedir}/nexus # Nexus 私服 WEB 应用所在位置nexus-webapp-context-path=/nexus # Nexus 私服WEB 应用 contextPath# Nexus section Nexus 私服配置信息nexus-work=${bundleBasedir}/../sonatype-work/nexus # 私服工作目录,即构件保存目录runtime=${bundleBasedir}/nexus/WEB-INF # 私服 WEB 应用运行目录
检查私服端口和工作
3.3.1 修改Nexus运行用户
Nexus 私服在启动后,私服应用需要访问 Linux 的文件系统,所以需要有足够的权限。Nexus 的启动脚本文件中,可以指定私服应用的访问用户,此信息在 nexus-2.11.2-03/bin/nexus 脚本文件中定义。需要修改的信息如下:
# NOTE - This will set the user which is used to run the Wrapper as well as # the JVM and is not useful in situations where a privileged resource or# port needs to be allocated prior to the user being changed. #RUN_AS_USER= #原内容RUN_AS_USER=root #修改后的内容,代表Nexus 私服使用 root 用户权限
修改 Nexus 运行用户
1.修改文件
2.默认是注释的
3.释放
3.3.2 修改防火墙,开放私服端口访问
修改防火墙配置文件,开放 Nexus 私服的访问端口 8081。
vi /etc/sysconfig/iptables
增加下述内容:
重新启动防火墙:
service iptables restart
3.3.3 启动并测试访问
启动Nexus 私服:
/usr/local/nexus/nexus-2.11.2-03/bin/nexus start
成功启动后,控制台输出内容如下:
可通过命令检查私服运行状态:
/usr/local/nexus/nexus-2.11.2-03/bin/nexus status
内容如下为私服运行中:
内容如下为私服未运行:
如果是not running说明启动失败,重新配置!
也可使用浏览器访问 Nexus 私服WEB 应用, 访问地址为:
http://ip:8081/nexus (ip 为 Nexus 所在系统的访问 IP),访问效果如下:
总结:
此时配置成功,最重要的步骤是修改用户权限,让root来运行!