centos6.5上搭建maven私服

来源:互联网 发布:java一年经验工资 编辑:程序博客网 时间:2024/05/22 20:01

环境:

jdk1.7 

centos6.5

私服软件: nexus-2.11.2-03-bundle.tar.gz

       在开发过程中,有时候会使用到公司内部的一些开发包,显然把这些包放在外部是不合适的。另外,由于项目一直在开发中,这些内部的依赖可能也在不断的更新。可以通过搭建公司内部的Maven服务器,将第三方和内部的依赖统一管理,同时也可以节省网络带宽,当然前提是项目所需要的构件在私服中已经存在。


安装和配置

请上传nexus-2.11.2-03-bundle.tar.gz到/usr目录下

#cd  /usr

#mkdir  nexus

# tar  -xzvf  nexus-2.11.2-03-bundle.tar.gz  -C  nexus

# cd nexus
 # ls
  nexus-2.11.2-03   sonatype-work

解压后会在同级目录中,出现两个文件夹:nexus-2.11.2-03和sonatype-work,前者包含了nexus的运行环境和应用程序,后者是你的私有库目录。

修改配置文件
 # cd nexus-2.11.2-03/conf
 # vi nexus.properties
 #Jetty section
 application-port=8081      ##可以在这里修改端口号,当然不改也可以
 # nexus section
 nexus-work=${bundleBasedir}/../sonatype-work/nexus  

 配置运行用户
# vi /usr/nexus/nexus-2.11.2-03/bin/nexus
#RUN_AS_USER=
RUN_AS_USER=root
保存以上修改

配置防火墙开放nexus的访问端口

#vi /etc/sysconfig/iptables

复制22端口的那一行,然后改为8081,重启防火墙服务即可

#service iptables restart


启动nexus

#cd  /usr/nexus/nexus-2.11.2-03/bin
#./nexus start
****************************************
WARNING - NOT RECOMMENDED TO RUN AS ROOT
****************************************
Starting Nexus OSS...
Started Nexus OSS.


把nexus配置成服务并设置为开机启动

# cp /usr/nexus-2.11.2-03/bin/nexus /etc/init.d/
# cd /etc/init.d/

修改nexus的home目录


# chmod  a+x nexus

#chkconfig  --add nexus
# chkconfig  nexus on
# service  nexus start

如果想从控制台查看启动过程,也可以

#service nexus console

在浏览器打开:http://ip:8081/nexus,登录:用户名admin  默认密码:admin123,如图所示:


在画圆圈的地方点击登陆

修改密码,如图所示,在选择的用户哪里单击右键


接下来配置仓库类型


group 仓库组:Nexus 通过仓库组的概念统一管理多个仓库,这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库; 
hosted 宿主仓库: 主要用于发布内部项目构件或第三方的项目构件 (如购买商业的构件)以及无法从公共仓库获取的构件(如 oracle 的  JDBC 驱动) 
proxy 代理仓库:代理公共的远程仓库; 
virtual 虚拟仓库:用于适配 Maven 1(现在一般用不上); 
一般用到的仓库种类是 hosted、proxy 
 
Hosted仓库常用类型说明: 
releases  内部的模块中release模块的发布仓库 
snapshots 发布内部的 SNAPSHOT(快照)模块的仓库 
3rd party 第三方依赖的仓库,这个数据通常是由内部人员自行下载之后发布上去 
 
如果构建的Maven项目本地仓库没有对应的依赖包,那么就会去 Nexus 私服去下载, 
如果Nexus私服也没有此依赖包,就回去远程中央仓库下载依赖,这些中央仓库就是proxy。 
Nexus私服下载成功后再下载至本地 Maven库供项目引用。


设置proxy代理仓库(http://192.168.0.130:8081/nexus/content/repositories/central/)准许远程下载,如:


设为允许重新发布


最后在自己的应用中把中心仓库配置成建立的私有仓库地址即可,修改本地的maven配置文件,C:\maven\apache-maven-3.3.9\conf\setting.xml

在mirrors添加mirror节点地址指向建立的私有仓库地址,mirrorOf属性值设为central为了覆盖超级pom中指定的central地址,如下


ok,大功告成!

附录:

一  上传第三方商业软件jar包的操作:



上传成功后就可以找到依赖配置了


二. 发布项目jar包到私服库

1.  在工程的pom文件中加入如下配置:

<distributionManagement><repository><id>nexus-releases</id><name>Nexus Release Repository</name><url>http://192.168.0.130:8081/nexus/content/repositories/releases/</url></repository><snapshotRepository><id>nexus-snapshots</id><name>Nexus Snapshot Repository</name><url>http://192.168.0.130:8081/nexus/content/repositories/snapshots/</url></snapshotRepository></distributionManagement>  <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties>
在maven的配置文件settings.xml中加入如下配置,不然,发布的时候会报认证失败的错误哦!

 <servers><server><id>nexus-releases</id><username>deployment</username><password>test123</password></server><server> <id>nexus-snapshots</id><username>deployment</username><password>test123</password></server>  </servers>
然后在pom文件里面点击右键,选择run as ---->  maven build .....即可,如图:



运行成功后,可以在私服上看到相应的jar包:


其它项目要引用改jar包,只需拷贝右边的xml配置即可。

如果要发布稳定版,则把pom文件的稍加修改即可,如图:


再发布一下,如图:


此时,nexus服务器上的对应文件如图所示:


OK,大功告成!

如果觉得帮助到了您,可以扫码打赏作者,您的支持是作者源源不断的动力!