因为工作需要,第一次搭建Maven私服,使用的是目前最流行的Sonatype Nexus。搭建私服并不难,官网有很详细的说明,只需几个步骤即可搭建一个可用的私服,但因为公司系统环境(测试)的原因还是遇到几个坑,在这里做一下总结。
背景说明
1.公司服务器为离线环境,Jar包无法在线下载,只能搭建好后手动上传Jar包;
2.测试服务器上因为特殊原因同时运行多个JDK,从1.5 、1.7到1.8版本都有,默认环境为1.5,不是Nexus支持的JDK环境。
遇到的坑
开始,下载了最新版本 Nexus 3.x latest version ,根据百度出的教程安装。安装好后才发现3.x系列的Nexus是根据二进制方式来管理仓库的,而且sonatype-work目录里的文件夹与2.x差异巨大 ,无法通过直接拷贝jar包方式上传库文件。因此不得不删除原来的安装包,重新下载了2.14版本来安装。这里提示各位需要在离线环境安装Nexus的同学,考虑使用2.x的版本。
当然,因为我还没有仔细看过官网文档,不知道3.x是否合适的上传方案,如果大家有好的方法,欢迎交流。
搭建步骤
搭建步骤建议大家参考官网,因为软件版本在不断更新,有的版本之间差异较大,百度出来的博文很多不具有时效性,而且不够详细。英语不好的同学,可使用浏览器的翻译功能,这里推荐谷歌浏览器。
这里唯一需要强调的是如何指定JDK运行Nexus,如果你的服务器环境也同时安装了多个JDK且默认环境变量不是Nexus支持的环境,可通过以下方式配置(基于linux):
- 3.x : 3.x版本要求JDK(或JRE)1.8版本,通过编辑 bin 目录下的 nexus文件,指定参数 INSTALL4J_JAVA_HOME_OVERRIDE 的值为JDK目录 ,如
INSTALL4J_JAVA_HOME_OVERRIDE=/usr/lib/jvm/openjdk-8
- 2.x :2.x需要JDK 1.6 ~1.8,具体视Nexus版本而定,参考如下:
编辑 /bin/jsw/conf/wrapper.conf , 修改 wrapper.java.command (约在第15行,默认值为java)参数的值为 $JAVA_HOME/bin/java ,
如 wrapper.java.command = /usr/lib/jvm/jdk1.8.0_171/bin/java
关于2.x 版本Jar包拷贝
将本地仓库的jar包拷贝到/sonatype-work/storage/ 对应的类型目录即可,如central 、release等