CentOS下Nexus搭建Maven私库

1
2
3
作者 : daodaoliang@yeah.net
日期 : 2017-04-20
版本 : 0.0.4

[TOC]

1. Maven私服简介

搭建私服可以做什么?
1、如果公司开发组的开发环境全部内网,这时如何连接到在互联网上的Maven中央仓库呢?
2、如果公司经常开发一些公共的组件,如何共享给各个开发组,使用拷贝方式吗?如果这样,公共库升级了怎么办?
当然可以解决的问题可能不止上面两点,下面来介绍在CentOS中搭建自己的Maven私服,使用Nexus

2. java 运行环境准备

根据官网的介绍,运行环境最好是使用最新的8版本,官网文如下:

1
2
Nexus Repository Manager requires a Java 8 Runtime Environment (JRE) from Oracle. The distributions for OSX and Windows include suitable runtime environments for the specific operating system. The distributions for Unix do not include the runtime environment.
If you prefer to use an external runtime or use a Unix operating system, it is recommended to use the latest version of Java 8 available from the Oracle website. You can choose to install the full JDK or the JRE only.

2.1 本地java版本确认

如果系统是新安装的并且没有进行相关配置的话,默认应该是openJDK1.7版本;

java版本查看

2.2 安装新的JDK

  • 由于原有系统很多包都是依赖与JDK,以防万一,我就没有卸载原有的JDK而是在安装一个8版本的JDK;
  • JDK官网找到对应的rpm包进行下载并安装,建议本机迅雷下载完成后再传到服务器,也可以找一些速度快的镜像站进行下载;
  • 下载完后直接安装,然后查看对应的版本信息是否正确;

  • 顺手改一下JAVA_HOME的环境变量;

java-home

3. 安装 Nexus

3.1 下载Nexus

PS:建议在本机用迅雷下载完了在传上去,或者用一些快一点镜像站;

1
wget https://www.sonatype.com/oss-thank-you-tar.gz

3.2 安装 Nexus

  • 解压安装包
1
tar zxvf oss-thank-you-tar.gz
  • 安装成服务
1
mv ./nexus-3.1.1-X86_64/ /usr/local/nexus3

增加环境变量NEXUS_HOME

nexus环境变量

创建并开启服务

1
2
3
4
5
sudo ln -s $NEXUS_HOME/bin/nexus /etc/init.d/nexus
cd /etc/init.d
sudo chkconfig --add nexus
sudo chkconfig --levels 345 nexus on
sudo service nexus start

4. 配置 Nexus

4.1 配置WEB 访问

  • 开启 8081 端口
1
vim /etc/sysconfig/iptables

增加如下一条:

iptables

  • 浏览器访问

在浏览器中打开对应的URL 例如: http://10.140.22.205:8081,默认管理员用户名和密码如下:

1
2
user: admin
pwd: admin123

默认nexus已经帮我们创建了五个库和两个组,我们可以直接使用,其中Typeprosy的为代理库,Typehosted的为宿主库,Typegroup的为组;

一般用到的仓库种类是hostedproxyHosted代表宿主仓库,用来发布一些第三方不允许的组件,比如Oracle驱动、比如商业软件jar包。Proxy代表代理远程的仓库,最典型的就是Maven官方中央仓库、JBoss仓库等等。如果构建的Maven项目本地仓库没有依赖包,那么就会去这个代理站点去下载,那么如果代理站点也没有此依赖包,就回去远程中央仓库下载依赖,这些中央仓库就是proxy。代理站点下载成功后再下载至本机。

4.2 本地项目配置

在项目的pom.xml或者settings.xml文件里加入一下配置信息(区别,pom.xml是针对当前项目,settings.xml是全局的针对所有项目)配置信息中的id,nameurl跟上图中的仓库对应,typeproxy,说明它只是代理,只能用于下载jar包,不能用于发布项目。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<repositories>
<repository>
<id>maven-central</id>
<name>maven-central</name>
<url>http://10.140.22.205:8081/repository/maven-central/</url>
<layout>default</layout>
<snapshotPolicy>always</snapshotPolicy>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>

其他使用可以参考这里

daodaoliang wechat
点击上面图片后用微信扫描,你就能认识一个有趣的灵魂了呀。
Fork me on GitHub