码迷,mamicode.com
首页 > 其他好文 > 详细

maven+Nexus搭建本地私服仓库

时间:2016-07-17 18:18:28      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:java编程   项目管理   object   相关性   nexus   

maven 是基于项目对象模型(Project Object Model, POM),通过一小段描述信息来管理项目的构建,报告,文档的软件项目管理工具。

目前,绝大多数开发人员都把 Ant 当作 java编程项目的标准构建工具。但是,Ant 的项目管理工具(作为 make的替代工具)不能满足绝大多数开发人员的需要。通过检查 Ant 构建文件,很难发现项目的相关性信息和其它元信息(如开发人员/拥有者、版本或站点主页)。

Maven 除了以程序构建能力为特色之外,还提供 Ant 所缺少的高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目,而使用 Ant 则需要十几行。事实上,由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目现在使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

Maven这个单词来自于意第绪语,意为知识的积累,最早在Jakata Turbine项目中它开始被用来试图简化构建过程。当时有很多项目,它们的Ant build文件仅有细微的差别,而JAR文件都由CVS来维护。于是Maven创始者开始了Maven这个项目,该项目的清晰定义包括,一种很方便的发布项目信息的方式,以及一种在多个项目中共享JAR的方式。


Maven 和 Ant 有什么不同呢?

Ant 为 Java 技术开发项目提供跨平台构建任务

Maven 本身描述项目的高级方面,它从 Ant 借用了绝大多数构建任务


要先装好jdk

官网:http://maven.apache.org/index.html


安装过程:

[root@MiWiFi-R1CM-srv ~]# cd /usr/local/src/
[root@MiWiFi-R1CM-srv apache-maven]# tar zxf apache-maven-3.0.5-bin.tar.gz -C /usr/local/
[root@MiWiFi-R1CM-srv apache-maven]# mv /usr/local/apache-maven-3.0.5 /usr/local/apache-maven


配置环境变量:

echo -e ‘#!/bin/bash\nexport MAVEN_HOME=/usr/local/apache-maven\nexport PATH=$PATH:$MAVEN_HOME/bin‘  >/etc/profile.d/maven.sh

[root@MiWiFi-R1CM-srv apache-maven]# source /etc/profile.d/maven.sh


验证:

[root@MiWiFi-R1CM-srv apache-maven]# mvn -v

出现下面提示代表安装成功

Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 21:51:28+0800)

Maven home: /usr/local/apache-maven

Java version: 1.8.0_60, vendor: Oracle Corporation

Java home: /usr/local/src/jdk1.8.0_60/jre

Default locale: en_US, platform encoding: UTF-8

OS name: "linux", version: "2.6.32-431.el6.x86_64", arch: "amd64", family: "unix"


maven的配置文件:

setting.xml 配置文件,在安装目录(/usr/local/apache-maven/conf/settings.xml)和本地目录(/home/homer/.m2/settings.xml)都有,区别:

1) 安装目录(conf/settings.xml),是对本机器上所有用户有效(同一台机器可以有多个用户,均有效),全局设置

2) 当前目录(.m2/settings.xml),仅对当前用户有效,局部设置

maven还有一个配置文件pom.xml,是在java项目的根目录下,仅对当前项目有效,局部设置


更多关于maven的使用:

http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html



前边简单介绍了Maven,Maven默认提供的中央仓库是在远程网络服务Appache提供的,这对于我们开发时不合理的。如果我们没网了或者什么情况,我们怎么办?也就是说我们队中央仓库的依赖性太大。而Nexus私服则可以解决我们这个问题。先看下这张图应该大家就非才明白了:

技术分享

这样就相当于在我们本地的局域网搭建了一个类似中央仓库的服务器,我们开始将中央仓库的一些资料下载到私服务器上,然后平时我们的maven项目就是直接访问局域网内的私服即可,既节省了网络带宽也会加速项目搭建的进程,这样对我们开发来说,对公司来说都是非常好的选择。




要先装好jdk

搭建Nexus:

下载地址:http://www.sonatype.org/nexus/archived_version?id=38

[root@MiWiFi-R1CM-srv src]# wget  
[root@MiWiFi-R1CM-srv src]# tar -zxf nexus-2.9.0-bundle.tar.gz -C /usr/local/
[root@MiWiFi-R1CM-srv src]# mv /usr/local/nexus-2.9.0-bundle /usr/local/nexus


配置nexus(根据需要配置nexus监听的端口号):

sed -i ‘s/application-port=8081/application-port=8088/g‘ nexus/conf/nexus.properties


启动方法一、

配置环境变量(RUN_AS_USER=root)表示使用root运行nexus:

[root@MiWiFi-R1CM-srv ~]# echo -e ‘#!/bin/bash\nexport NEXUS_HOME=/usr/local/nexus\nexport PATH=$PATH:$NEXUS_HOME/bin\nexport RUN_AS_USER=root‘ >/etc/profile.d/nexus.sh
[root@MiWiFi-R1CM-srv ~]# source /etc/profile.d/nexus.sh
[root@MiWiFi-R1CM-srv local]# /usr/local/nexus/bin/nexus start
[root@MiWiFi-R1CM-srv local]# netstat -tlunp |grep 8088


tcp        0      0 0.0.0.0:8088                0.0.0.0:*                   LISTEN      2671/java


启动方法二(service)、

step1(拷贝启动脚本)

[root@MiWiFi-R1CM-srv local]# cd /usr/local/nexus/
[root@MiWiFi-R1CM-srv nexus]# cp bin/nexus /etc/init.d/

step2(修改脚本)

vim /etc/init.d/nexus

新增两行参数

# chkconfig: 2345 66 39
# description: running&stop nexus service.

修改两行参数

NEXUS_HOME="/usr/local/nexus"
RUN_AS_USER=root


step3(增加执行权限)

[root@MiWiFi-R1CM-srv nexus]# chmod +x /etc/init.d/nexus


step4(交给chkconfig管理)

[root@MiWiFi-R1CM-srv nexus]# chkconfig --add nexus


step5(启动)

[root@MiWiFi-R1CM-srv nexus]# service nexus start


访问nexus:

http://192.168.31.123:8088/nexus/




本文出自 “初心、始终” 博客,请务必保留此出处http://gouyc.blog.51cto.com/1594451/1827069

maven+Nexus搭建本地私服仓库

标签:java编程   项目管理   object   相关性   nexus   

原文地址:http://gouyc.blog.51cto.com/1594451/1827069

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!