搭建Nexus3Maven私服环境

  • 软件包下载
  • 创建安装目录
  • 解压安装包
  • 配置Nexus
  • 启动Nexus
  • 访问Nexus
  • Nexus系统
  • 创建用户和角色
  • 创建仓库
  • 本地快照仓库
  • 本地正式仓库
  • 代理仓库
  • 组合仓库
  • 发布jar包
  • 项目
  • jar包
  • 下载jar包

软件包下载

  • 下载sonatype Nexus仓库管理安装包

创建安装目录

  • 在服务器上创建Nexus仓库管理的安装目录
  • 将下载好的安装包上传到服务器自定义的安装目录中
cd /DATA
mkdir nexus

解压安装包

  • 在安装目录中解压Nexus安装包
tar -zxvf nexus-3.25.1-04-unix.tar.gz

配置Nexus

  • 修改Nexus默认端口号:
  • 进入nexus-3.25.1-04文件夹中的etc文件夹
  • 修改Nexus的配置文件nexus-default.properties
  • 修改默认的端口号application-port
cd /DATA/nexus/nexus-3.25.1-04/etc
vi nexus-default.properties
application-port=8081
  • 修改Nexus的内存分配:
  • 进入nexus-3.25.1-04文件夹中的bin文件夹
  • 修改nexus.vmoptions文件
cd /DATA/nexus/nexus-3.25.1-04/bin
vi nexus.vmoptions

启动Nexus

  • 在Nexus安装包的bin目录中通过命令启动Nexus:
# ./nexus run & 也可以.其中 & 表示后台启动
./nexus start &

访问Nexus

  • 在浏览器中输入地址,进入Nexus页面:
http://localhost:8081
  • 根据提示获取Nexus的admin的登录密码用于登录Nexus:
cd /DATA/nexus3/sonatype-work/nexus3/

vi admin.password
  • 登录成功之后修改密码admin, 进入Nexus系统页面

Nexus系统

创建用户和角色

  • 进入Security-Users页面可以创建私服用户以及新的角色

创建仓库

  • 进入Repository-Repositories中Create repository中可以创建仓库
  • 这里创建以下四个仓库:
  • 本地快照仓库: 用于发布的jar包. 比如测试的jar包
  • 本地正式仓库: 用于第三方提供的,不需要进行修改的jar包
  • 代理仓库: 代理maven仓库
  • 组合仓库: 将上面的本地快照仓库,本地正式仓库和代理仓库合成的一个仓库使用

本地快照仓库

  • 选择maven本地仓库 : Repository - Repositories - Create repository - maven2(hosted)
  • 创建本地快照仓库:
  • Name: 仓库名称snapshot
  • Maven 2 - Version policy: 选择快照Snapshot版本
  • Hosted - Deployment policy: 选择Allow redeploy
  • 点击应用创建成功,会在Repository - Repositories中看到创建的仓库

本地正式仓库

  • 选择maven本地仓库 : Repository - Repositories - Create repository - maven2(hosted)
  • 创建本地正式仓库:
  • Name: 仓库名称release
  • Maven 2 - Version policy: 选择发布Release版本
  • Hosted - Deployment policy: 选择Allow redeploy
  • 点击应用创建成功,会在Repository - Repositories中看到创建的仓库

代理仓库

  • 选择maven代理仓库 : Repository - Repositories - Create repository - maven2(proxy)
  • 创建代理仓库:
  • Name: 代理仓库名称proxy
  • Maven 2 - Version policy: 选择发布Release版本
  • Proxy - Remote storage: 指定代理maven仓库的地址
  • 点击应用创建成功,会在Repository - Repositories中看到创建的仓库

组合仓库

  • 选择maven组合仓库 : Repository - Repositories - Create repository - maven2(group)
  • 创建组合仓库:
  • Name: 组合仓库名称group
  • Group - Member repositories: 在Members中从上到下优先级由高到底
  • 优先寻找本地正式仓库
  • 如果本地正式仓库不存在,寻找本地快照仓库
  • 如果本地快照仓库不存在,寻找代理仓库
  • 点击应用创建成功,会在Repository - Repositories中看到创建的仓库

发布jar包

项目

  • 在本地新建一个maven环境用作maven私服,然后对maven私服环境进行配置
  • 修改settings.xml文件中的本地仓库的地址:
<!-- 自定义maven本地仓库地址 -->
<localRepository>/Users/chova/Documents/Maven/repository</localRepository>
  • 新增servers配置,指定发布版本的账号和密码:
<servers>
<server>
<!-- ID是唯一的,用户密码即为Nexus的用户名和密码 -->
<id>xx-releases</id>
<username>admin</username>
<password>admin</password>
</server>
<server>
<!-- ID是唯一的,用户密码即为Nexus的用户名和密码 -->
<id>xx-snapshots</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
  • 进入Nexus仓库,获取Repository - Repositories - 仓库的URL
  • 在项目的pom.xml文件中增加上传maven私服的配置:
<!-- 打包上传maven私服 -->
<distributionManagement>
<repository>
<!-- 这里的ID名称要和setting.xml中的ID名称保持一致 -->
<id>xx-releases</id>
<!-- 发布仓库的URL地址 -->
<url>http://127.0.0.1:8081/respository/xx-hosted-release/</url>
</repository>
<snapshotRepository>
<!-- 这里的ID名称要和setting.xml中的ID名称保持一致 -->
<id>xx-releases</id>
<!-- 发布仓库的URL地址 -->
<url>http://127.0.0.1:8081/respository/xx-hosted-snapshot/</url>
</snapshotRepository>
</distributionManagement>
  • 更改IDEA中配置的maven环境为新建的maven私服环境地址
  • 使用Maven中的deploy, 或者deploy命令即可将版本发送到私服中:
mvn deploy
  • 因为创建的项目指定的版本version是SNAPSHOT, 所以自动会到快照版本中,将版本version的 -SNAPSHOT去掉就可以打包成release版本

jar包

  • 选择上传的仓库地址Upload - xx-hosted-release, 只能选择发布仓库
  • 上传jar包文件,并对相关属性进行命名
  • 上传完成后,可以在Browse中查看上传的jar是否存在

下载jar包

  • 在maven的settings.xml文件中增加组合仓库的配置:
<servers>
<server>
<id>nexus-xx</id>
<username>admin</username>
<password>admin</password>
</server>
</servers>
  • 在maven私服的settings.xml中增加组合仓库的镜像地址:
<mirrors>
<mirror>nexus-xx</mirror>
<name>internal nexus repository</name>
<!-- 组合仓库的地址 -->
<url>http://127.0.0.1:8081/repository/xx-group</url>
<mirrorOf>!internal.repo,*</mirrorOf>
</mirrors>
  • 在maven私服环境的settings.xml文件中配置仓库列表:
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activstion>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
<profile>
<id>nexus-xx</id>
<!-- 远程仓库列表 -->
<repositories>
<repository>
<id>nexus-xx</id>
<name>Nexus Central</name>
<!-- URL地址 -->
<url>http://127.0.0.1:8081/repository/xx-group/</url>
<layout>default</layout>
<!-- 表示可以从仓库中下载release版本 -->
<releases>
<enable>true</enable>
</releases>
<!-- 表示可以从仓库中下载snapshot版本 -->
<snapshots>
<enable>true</enable>
</snapshots>
</repository>
</repositories>
<!-- 插件仓库列表 -->
<pluginRepositories>
<pluginRepository>
<id>nexus-xx</id>
<name>Nexus Central</name>
<url>http://127.0.0.1:8081/repository/xx-group/<url>
<layout>default</layout>
<releases>
<enable>true</enable>
</releases>
<snapshot>
<enable>true</enable>
</snapshot>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>

<!-- 需要激活profile标签中的ID才会生效 -->
<activeProfiles>
<activeProfile>nexus-xx</activeProfile>
<activeProfile>jdk-1.8</activeProfile>
<activeProfiles>
  • 在pom.xml中引入依赖jar, 即可导入私服的jar包:
<dependency>
<groupId>com.oxford</groupId>
<artifactId>siege-chova</artifactId>
<version>1.0.1</version>
</dependency>