CentOS下Nexus搭建Maven私库
 2017-04-20 转载请注明出处:http://daodaoliang.com/
	作者 : daodaoliang@yeah.net
	日期 : 2017-04-20
	版本 : 0.0.4

[TOC]

1. Maven私服简介

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

2. java 运行环境准备

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

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

java-home

3. 安装 Nexus

3.1 下载Nexus

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

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

3.2 安装 Nexus

	tar zxvf oss-thank-you-tar.gz
	mv ./nexus-3.1.1-X86_64/  /usr/local/nexus3

增加环境变量NEXUS_HOME

nexus环境变量

创建并开启服务

	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 访问

	vim /etc/sysconfig/iptables

增加如下一条:

iptables

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

	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包,不能用于发布项目。

<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>

其他使用可以参考这里