1、概述html
一、概要java
如今的项目基本都是用Maven来管理工程,这样一来在公司内容搭建一个私服就很是有必要了,这样一来能够管理公司内部用的JAR包,也能够管理第三方的各类JAR来,以避免每次都要从外网的仓库中下载。私服有两种软件搭建Nexus和artifactory,这两个各有优势。本文配置一下Nexus。Nexus仍是一个比较流行的私服。数据库
二、Nexus介绍apache
Nexus是一个强大的Maven仓库管理器,它极大地简化了本身内部仓库的维护和外部仓库的访问。利用Nexus你能够只在一个地方就可以彻底控制访问 和部署在你所维护仓库中的每一个Artifact。Nexus是一套“开箱即用”的系统不须要数据库,它使用文件系统加Lucene来组织数据。Nexus 使用ExtJS来开发界面,利用Restlet来提供完整的REST APIs,经过m2eclipse与Eclipse集成使用。Nexus支持WebDAV与LDAP安全身份认证。浏览器
Nexus的下载地址是:http://www.sonatype.org/nexus/go/到官网上将ZIP的压缩包下载下来便可,解压以后发现有两个文件夹,一个是nexus-2.11.0-02,另外一个是sonatype-work;第一个文件夹包含了Nexus运行所须要的文件,是运行Nexus必须的;第二个文件夹目录包含Nexus生成的配置文件、日志文件、仓库文件等,当须要备份Nexus的时候,默认备份的是此目录文件。安全
2、环境准备oracle
一、apache-maven-3.2.5 百度网盘下载地址:https://pan.baidu.com/s/1Rhglh4_RPgT79pXObQ2vZQ 提取码:a6h6 app
关于maven请参考个人另外一篇文章:https://www.cnblogs.com/liandy001/p/11287278.htmleclipse
二、nexus-2.11.4-01-bundle 百度网盘下载地址:https://pan.baidu.com/s/1ZCyVb-Zc5RytvG9tFv5F2Q 提取码:h3d0maven
三、JDK1.8 64位 百度网盘下载地址:https://pan.baidu.com/s/1lI6BLbWK7DslmIjI_z81Pg 提取码:knuz
3、Nexus环境配置
一、修改系统变量
在系统变量Path 添加值(D:\DevelopTools\nexus-2.11.4-01-bundle\nexus-2.11.4-01\bin;(按实际安装目录为准))
二、配置Nexus对应的JDK
在 nexus的根目录bin\jsw\conf\wrapper.conf的文件
修改:wrapper.java.command=C:\Program Files\Java\jdk1.8.0_131\bin\java
三、安装Nexus服务
dos窗口输入指令nexus install
四、启动Nexus服务
dos窗口输入指令nexus start
若是启动失败,主要有两种缘由:
一、Nexus安装目录 bin\jsw\conf\wrapper.conf中的java配置错误致使启动失败(错误可能性1:版本错误;错误可能性2:写错路径了).
二、8081端口被占用致使启动失败(若是是非系统进程占用,结束该进程便可),或修改Jetty的端口,在Nexus的安装目前/conf/nexus.properties文件中找到 application-port=8081 改成8181就好了。
4、Nexus初步介绍
1.打开浏览器,访问:http://localhost:8081/nexus/:
2.点击右上角 Log In,使用用户名:admin ,密码:admin123 登陆,可以使用更多功能:
3.点击左侧 Repositories 连接,查看 Nexus 内置的仓库:
4.Nexus 的仓库分为这么几类:
5.为了更好的使用 Nexus 的搜索,咱们能够设置全部 proxy 仓库的 Download Remote Indexes 为 true,即容许下载远程仓库索引。
索引下载成功以后,在 Browse Index 选项卡下,能够浏览到全部已被索引的构件信息,包括坐标、格式、Maven 依赖的 xml 代码:
6.管理本地仓库
咱们前面讲到类型为hosted的为本地仓库,Nexus预约义了3个本地仓库,分别是Releases, Snapshots, 3rd Party. 分别讲一下这三个预置的仓库都是作什么用的:
Releases:
这里存放咱们本身项目中发布的构建, 一般是Release版本的, 好比咱们本身作了一个FTP Server的项目, 生成的构件为ftpserver.war, 咱们就能够把这个构建发布到Nexus的Releases本地仓库. 关于符合发布后面会有介绍.
Snapshots:
这个仓库很是的有用, 它的目的是让咱们能够发布那些非release版本, 非稳定版本, 好比咱们在trunk下开发一个项目,在正式release以前你可能须要临时发布一个版本给你的同伴使用, 由于你的同伴正在依赖你的模块开发, 那么这个时候咱们就能够发布Snapshot版本到这个仓库, 你的同伴就能够经过简单的命令来获取和使用这个临时版本.
3rd Party:
顾名思义, 第三方库, 你可能会问不是有中央仓库来管理第三方库嘛,没错, 这里的是指可让你添加本身的第三方库, 好比有些构件在中央仓库是不存在的. 好比你在中央仓库找不到Oracle 的JDBC驱动, 这个时候咱们就须要本身添加到3rdparty仓库。
5、经过Maven发布到Nexus中央仓库
1 . 修改私服中仓库的部署策略
Release版本的项目应该发布到Releases仓库中,对应的,Snapshot版本应该发布到Snapshots仓库中。Maven根据pom.xml文件中版本号<version>节点的属性是否包含-SNAPSHOT,来判断该项目是不是snapshot版本。若是是snapshot版本,在执行mvn deploy部署命令时,maven会自动将项目发布到Snapshots仓库。要发布项目,首先须要将Releases仓库和Snapshots仓库的“Deployment Policy”设置为“Allow Redeploy”:
2 . 配置项目的部署仓库
在项目的pom.xml文件中增长配置:
<distributionManagement> <repository> <id>releases</id> <url>http://127.0.0.1:8081/nexus/content/repositories/releases</url> </repository> <snapshotRepository> <id>snapshots</id> <url>http://127.0.0.1:8081/nexus/content/repositories/snapshots</url> </snapshotRepository> </distributionManagement>
3.设置Maven的服务帐号和密码
D:\maven\apache-maven-3.2.5\conf\settings.xml
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
4.发布项目到Nexus中央仓库
右键项目->run as->maven build……->run
发布成功后,在私服的仓库中就能看到了:
6、在Nexus中手动上传项目构件
7、Nexus私服库快速导入jar包
一、找到Repositories->Central->Configuration;以下图
备注:图中第三步 是Nexus 默认的工做路径,须要把你本地的 maven 仓库地中的 全部jar包经过 XFTP上传到里面,再Save;
Nexus私服库快速导入jar包结束;