1:准备资源
linux服务器,jdk和nexus 安装包
2:网络通畅,保持windows端和linux服务器端网络通畅。
3: 安装jdk和配置环境变量
进入到jdk安装文件的目录夹 usr/java
1: 进入到安装文件的目录夹 cd ~命令到根目录下 在cd usr/java
2:授权 chmod 755 jdk-7u55-linux-x64.tar.gz
3: tar -zxvf jdk-7u55-linux-x64.tar.gz
mv 解压的文件夹名 jdk1.7
修改 /etc/profile文件 加入以下内容
export JAVA_HOME=/usr/java/jdk1.7
export JAVA_BIN=/usr/java/jdk1.7/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
java -version 进行测试
4:安装nexus
解压安装包
tar -zvxf nexus-2.1.2-bundle.tar.gz
解压后会在同级目录中,出现两个文件夹:nexus-2.1.2和sonatype-work,前者包含了nexus的运行环境和应用程序,后者包含了自己的配置和数据。
3:配置nexus
在/usr/java/nexus-2.1.2/jsw/linux-x86-32(当前系统版本,注意操作系统位数)下的nexus文件在中约20行处加入RUN_AS_USER=用户名(用户名如root用户)
4:启动nexus
cd到/usr/java/nexus-2.1.2/jsw/linux-x86-32目录下,再./nexus
start命令启动nexus。./nexus status 检查nexus启动状态,./nexus stop停止nexus。
(高版本的nexus和低版本的启动文件不在同一级别目录下,需要注意)
可能出现nexus 启动失败:
1:在自己的服务器上搭建出现了启动不了的问题,经过检查,是因为操作系统版本引发的openjdk的问题,需要把/etc/selinux/config和/etc/sysconfig/selinux两个文件中设置SELINUX=enforcing。
2:jdk版本问题启动失败
3:nexus安装有问题
4:防火墙为运行该端口,关闭防火墙或者允许改端口权限。
可从日志文件中查看异常信息。
访问nexus
到这一步,如果都正常到这里,并且宿主机和linux的网络是ping通的,那么可以在宿主机和linux端任意端输入http://服务器
ip:8081/nexus/访问到nexus的主页,8081为端口,可以在/usr/java/nexus-2.1.2/conf下的
nexus.properties文件中进行端口修改
)。默认用户名和密码:admin/admin123,可以开始对nexus进行管理。
配置中央仓库
进入nexus主页以后,点击左边导航栏的Repositories,界面的主面板会显示所有所有仓库及仓库组的列表,它们的Type字段的值有group,hosted,proxy,virtual。这里先不关心virtual,只介绍下另外三种类型:
hosted,本地仓库,通常我们会部署自己的构件到这一类型的仓库,比如公司的第二方库。
proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。
group,仓库组,用来合并多个hosted/proxy仓库,当项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。
由此知道,需要配置一个Maven中央仓库的proxy,其实Nexus已经内置了Maven
Central,但需要做一些配置。点击仓库列表中的Maven
Central(有的版本是Central),注意到它的Policy是release,这说明它不会代理远程仓库的snapshot构件,英文远程仓
库的snapshot版本构件不稳定且不受我们控制,使用这样的构件含有潜在的风险。发现主面板下方有三个Tab,分别为
Browse,Configuration和Mirrors,点击Configuration进行配置,你现在需要关心的是两个配置项:“Remote
Storage Location”为远程仓库的地址,对于Maven
Central来说是http://repo1.maven.org/maven2/;“Download Remote
Indexes”顾名思义是指是否下载远程索引文件,Maven
Central的该字段默认为False,这是为了防止大量Nexus无意识的去消耗中央仓库的带宽(中央仓库有大量的构件,其索引文件也很大)。这里
需要将其设置为True,然后点击Save。在Nexus下载的中央仓库索引文件之后,就可以在本地搜索中央仓库的所有构件
有几个项目是我们可能会经常用到的:
Override local storage location:
在这个选项你可以配置Nexus本地仓库的存放地址,用来覆盖其默认的存放地址
Remote storage location:
这里是远程仓库的地址,为了提高代理速度,默认值是http://repo1.maven.org/maven2/
Download remote indexes: 这里配置是否下载远程索引文件,模式是false,
建议配置为true,这样可以通过索引文件来搜索需要的构件。
前面看到类型为hosted的为本地仓库,Nexus预定义了3个本地仓库,分别是Releases, Snapshots,
3rd Party.
Releases: 这里存放我们自己项目中发布的构建, 通常是Release版本的, 比如自己做了一个ofbiz
Server的项目, 生成的构件为ofbizserver.war,
我们就可以把这个构建发布到Nexus的Releases本地仓库
Snapshots: 这个仓库非常的有用, 它的目的是让我们可以发布那些非release版本, 非稳定版本,
比如我们在trunk下开发一个项目,在正式release之前你可能需要临时发布一个版本给其他同事使用,
因为同事也正在依赖你的模块开发, 那么这个时候就可以发布Snapshot版本到这个仓库,
同事就可以通过简单的命令来获取和使用这个临时版本.
3rd Party: 顾名思义, 第三方库, 这里的是指可以添加自己的第三方库,
比如有些构件在中央仓库是不存在的. 比如在中央仓库找不到Oracle 的JDBC驱动, 这个时候就需要自己添加到3rd
party仓库。
搜索构建其实就是将nexus与远程库进行索引同步的过程,这里要求服务器网络通讯正常。在实际使用构件的过程中通常遇到一个问题,有时候紧紧知道所需要的构建的大致名字,并不知道全称或group
id, 这是件非常头疼的事情. Nexus基于Nexus indexer的搜索功能解决了这个问题.
要是用搜索功能, 必须要有索引文件,
Nexus默认是不建立索引文件的,因为像中央仓库这样的索引文件的建立需要耗费比较大的网络资源,仅索引文件就要几十兆.
要开启中央仓库的索引文件下载功能需要在Maven Central的配置页面, 我们需要把三个代理仓库与远程网络仓库同步,把Apache
Snapshots ,Central,和CodeHaus Snapshots中Configuration的Download
Remote Indexes选择true,下载同步索引。
同步完成以后可查看已经同步的组件,如果下载失败,大部分是以为网络问题,所以一定要保持网络通畅,第一次同步时间可能比较久,资源比较大。可以通过手动下载开源组件仓库,配置进nexus,就可以不需要下载也能拥有开源的资源库。
在maven项目中使用nexus中的jar资源
上传在私服仓库,建议上传在3rd Party
需要在meven工程中pom.xml配置以下资源
true
public
Public Repositories
http://IP:8081/nexus/content/groups/public/
public
Public Repositories
http://IP:8081/nexus/content/groups/public/
如果有很多很多的maven project
,这么做肯定是不合理的,我们在maven的settings.xml中做总的配置就ok了。
1:加入一个server
2:加入一个profile和settings标签中加入activeProfiles。注意和profiles同一级别
注意IP修改 以及 server的id和profile id的一致性