使用 Nexus 搭建 Maven 私服
2018年12月22日 13:37:18 开发工具 ⁄ 共 3523字 暂无评论 ⁄ 被围观 1,707次

在以前的一篇文章《Maven 的初识、安装和配置》中,简单介绍了 Maven 和 Maven 在 IDE 环境中的配置。时隔一年,抽空把 Maven 私服的搭建和上传也简单写写,希望对需要的码友们有帮助。

4 使用Nexus搭建Maven私服

4.1 环境配置

虚拟机Win7(x86)作为模拟服务器,IP为192.168.2.155。

主机Win7(x64)作为客户端,IP为192.168.2.158。

4.2 私服简介

私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。

4.3 私服的作用

简单了解建立Maven私服的作用主要有:降低中央仓库的负荷,节省外网宽带,加速Maven构建,自己部署构件等等。

4.4 适用情景

为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以让这台搭建了nexus私服的电脑访问maven的远程仓库并下载项目资源,供开发人员从私服下载项目开发所需要的资源。

4.5 安装测试

首先确定我们的环境安装好jdk环境。

下载最新版本的nexus下载地址:http://www.sonatype.org/nexus/go,这里下载 nexus-2.12.1-01-bundle.zip,解压到 D 盘。

主要包括两个目录:nexus-2.12.1-01 和 sonatype-work。前者包含了 Nexus 运行所需要的文件,如启动脚本、依赖 jar 包等;后者主要包含 Nexus 生成的配置文件、日志文件、仓库文件等。

打开目录 D:\nexus-2.12.1-01-bundle\nexus-2.12.1-01\bin\jsw\,这个目录下面你会发现有很多系统版本的 nexus 环境,由于目前测试服务器是 win7 (32)的系统,所以选择进入 windows-x86-32 这个目录。

主要功能如下:

一般建议将 nexus 安装成 windows 服务,所以双击 install-nexus.bat,安装 nexus 到 windows 服务,双击 start-nexus.bat 启动服务。

如果发现 nexus 无法启动,并提示信息:wrapper | The nexus service was launched, but failed to start,可能是 jdk 环境变量设置有问题,再检查确认。

如果启动成功,没提示错误,则访问 http://localhost:8081/nexus/,启动后页面如下:

在右上角有个 Log in 的超链接,点击登录,默认的用户名是 admin 密码是 admin123

如果在客户端服务器中访问,打开浏览器,输入 http://192.168.2.155:8081/nexus/,即可进行构件的管理等操作。

到此,完成了 nexus 私服的搭建,项目组开发人员开发时,也可以在项目的 pom.xml 文件中,添加如下信息即可获取私服的 jar。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.bonc.wo</groupId>
  <artifactId>test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>test</name>
  <url>http://maven.apache.org</url>
  
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  
  <!-- 仓库地址 -->
  <repositories>
  	<repository>
  		<id>nexus</id>
  		<name>Team Nexus Repository</name>
  		<url>http://192.168.2.155:8081/nexus/content/groups/public/</url>
  	</repository>
  </repositories>
  
  <!-- 插件地址 -->
  <pluginRepositories>
  	<pluginRepository>
  		<id>nexus</id>
  		<name>Team Nexus Repository</name>
  		<url>http://192.168.2.155:8081/nexus/content/groups/public/</url>
  	</pluginRepository>
  </pluginRepositories>

  <!-- mysql驱动包第三方构件 -->
  <dependencies>
	<dependency>
	  <groupId>jdbc-driver</groupId>
	  <artifactId>mysql-connector-java</artifactId>
	  <version>5.1.26</version>
	  <classifier>bin</classifier>
	</dependency>
  </dependencies>
</project>

添加其他的构件时,会先在 nexus 私服下载好,然后才会下载到本地。如果发现私服已经存在某一 jar 包,则会直接从私服下载,如果没有则去网络上下载。

4.6 部署构件到私服

如果有些构件无法从公共仓库中获得,比如一些第三方构件,或者公司内部保密的一些构件,都可以上传至私服中的宿主仓库,让公司中的每个项目都可以免费下载使用。

如何上传呢?有两种方式:用户可以配置 Maven 自动部署构件至 Nexus 的宿主仓库,也可以通过界面手动上传构件。

4.6.1 配置 Maven 自动部署构件至 Nexus

这里以在 MyEclipse 中创建的 Maven 项目 test 为例来说明。

在项目的 pom.xml 文件中,加入下面的配置:

<distributionManagement>
  	<repository>
  		<id>nexus-releases</id>
  		<name>Nexus Releases Repository</name>
  		<url>http://192.168.2.155:8081/nexus/content/repositories/releases/</url>
  	</repository>
  	<snapshotRepository>
  		<id>nexus-snapshots</id>
  		<name>Nexus Snapshots Repository</name>
  		<url>http://192.168.2.155:8081/nexus/content/repositories/snapshots/</url>
  	</snapshotRepository>
</distributionManagement>

在 setting.xml 中,需要配置认证信息,如下:

<server>
      <id>nexus-releases</id>
      <username>admin</username>
      <password>admin123</password>
</server>
<server>
      <id>nexus-snapshots</id>
      <username>admin</username>
      <password>admin123</password>
</server>

其中,用户名和密码为 nexus 私服的管理员及其密码。

配置完毕后,对项目运用命令:mvn deploy 则即可发布快照版或正式版到 nexus 私服中。

4.6.2 通过界面手动上传构件至Nexus

这里以 pure 框架作为例子,演示如何手动上传构件。

按照图中依次点击。

填写信息如下。

开始上传至私服中。

刷新查看上传是否成功。

在 Maven 项目中,使用上传的第三方构件。

按图中操作,复制构件信息。

复制信息到项目的 pom.xml 中即可。

到此,Maven 私服的搭建和基本的使用已介绍完毕,动手试试吧~

给我留言

留言无头像?