0. 版本选择
0.1 nexus 两种发布版本
开源版OSS(Open Source SoftWare) 和 收费版 PRO; 使用OSS版就可以满足全部的要求
0.2 nexus verion 选择和JDK限制
1. 下载地址
2. 安装
2.1 目录结构
|--nexus-2.5.0-04
|--bin
|--jsw(这里面是 不同系统版本下的脚本)
|--nexus(lunix支持 install uninstall start stop 四个命令)
|--nexus.bat(windows 同上)
|--conf
|--examples
|--jetty.xml
|--logback.xml
|--nexus.properties(只用修改这里面的项目及主要是jetty bind的IP和端口)
|--lib(nexus web工程需要的Jar包)
|--logs(日志输出目录)
|--nexus(nexus war包解压后)
|--tmp(tmp)
|--LICENSE.txt
|--NOTICE.txt
|--sonatype-work(不细写了..基本就是服务器的jar仓库目录...下面有个storage目录)
2.2 启动关闭
- bin/nexus install 注册为服务
- bin/nexus start 启动服务
- http://127.0.0.1:8080/nexus 打开开始访问 账号 admin 密码admin123(默认如此)
3. 仓库
3.1 分类hosted、proxy、virtual、group
- hosted:本机仓库
- proxy:代理的远程仓库
- group:仓库组,本身不存储jar包也不管理Jar包,是多个hosted和或多个proxy仓库的代理,分发相关下载请求到对应的仓库(按照顺序尝试)
- virtual: for maven1 ,没用
3.2 几个内置仓库的约定的用途
- Public Repositories: 仓库组
- Releases :这里约定仓储公司内部发布的jar的release版本,
- Snapshotes :这里约定仓储公司内部发布的jar的snapshot版本,
- thirdparty:这也约定存储从出特定分发的第三方Jar,比如Oracle专门自己公司做的JDBC驱动
4. maven及pom设置
4.1 setting.xmlde配置
- 下面的servers list是用来对应仓库服务器的账号及密码的;
- server的Id必须是唯一的和repository的Id 对应;
- Maven deploy包的时候根据 pom里面<version></version>的格式来分发到不同的仓库,如下:
<!--
<version>1.0.0-RELEASE</version>会deploy到releases仓库;
<version>1.0.0-SNAPSHOT</version>会deploy到snapshots仓库
-->
...
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>deployment</username>
<password>deployment123</password>
</server>
<server>
<id>local-nexus</id>
<username>deployment</username>
<password>deployment123</password>
</server>
</servers>
...
<mirrors>
<mirror>
<id>local-nexus</id>
<name>local</name>
<!--这里是全局镜像代理,注意为public仓库组-->
<url>http://127.0.0.1:8081/nexus/content/groups/public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
...
4.2 pom.xml的配置
注意遵从Maven约定,请把release和snapshot包分别放到releases 和snapshots库;
<project>
...
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>nexus-release-repo</name>
<url>http://127.0.0.1:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>nexus-snapshots-repo</name>
<url>http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
...
</project>