使用nexus搭建maven仓库maven 本地私服

 

  我们在使用maven的时候,对于项目所依赖的jar包,maven默认会在中央仓库下载jar包,到本地的磁盘目录(如果没有配置则是用户目录下/.m2/repository文件夹下)。如果公司内部搭了一个maven私服的话,开发人员将仓库地址指向内网仓库地址,需要的jar包可直接在私服取,下载速度比远程要快,如果本地仓库没有则自动从远程下载并保存在本地。本文使用nexus搭建一个私服。

1.下载 nexus

      在浏览器中搜索 Sonatype Nexus 进入官网,找到下载 。下载之后解压压缩包如下:

 

2.安装 nexus

进入nexus/bin/jws文件夹下看到如下图:

我的电脑是win7 32位,所以点开windows-x86-32 文件夹,双击install-nexus.bat 把nexus安装成一个服务,完成之后,在windows服务里边将看到如下图所示:

这时候在浏览器输入http://localhost:8081/nexus  将看到如下页面,说明安装成功

 

3.配置 nexus

 在第二步完成之后,点击nexus主要右上角的 Log In按钮,管理员初始密码为 admin/adming123  登陆进去之点击 左侧的 【Repositories】菜单,会看的如下几个仓库

右键单击 Apache Snapshots,和central 仓库,在右键菜单中点击 Update Index 更新jar索引

默认情况下,nexus下载的索引,和jar包会保存在 nexus 同级目录下sonatype-work文件夹下

例如我的nexus安装目录为:D:\Devolopment\nexus-2.7   则 下载的jar和索引会保存在D:\Devolopment\sonatype-work 下,点开snoatype-work -->nexus 会看到 indexer、storage文件夹,可点进去看看

一些简单配置:

点击Apache Snapshots仓库,进行如下配置,开启远程索引下载,点击save按钮

将现有的仓库,Apache snapshots,3dpart,central 等仓库 加入 public 组中,直接在在界面中 将右侧的仓库移左边,效果如下:

 

4.在 maven 中使用 nexus

 找到maven的配置文件,即:apache-maven-3.1.1/conf 下的settings.xml

在mirrors节点下加入如下配置

 

  <mirrors>
    <!-- mirror
     | Specifies a repository mirror site to use instead of a given repository. The repository that
     | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
     | for inheritance and direct lookup purposes,and must be unique across the set of mirrors.
     |
    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>
     -->
      
    mirror>
      id>nexus</mirrorOf>centralname>internal nexus repositoryurl>http://localhost:8081/nexus/content/groups/public/>这一段配置,描述的便是 上一步中提到的那个Public Reposiories的信息,这个地址便是他的地址,这些写都可以再界面上看到 
    >这里的是localhost是在本机搭建测试用的,如果是公司内部的仓库的话,可自行修改成公司内网ip地址。
  >

 

 

 

如此,配置之后,在我们使用maven的时候,就会通过私服了。而不是直接从远程取了。(没有配置之前,maven默认在远程的中央仓库下载)

 

在这个配置文件中,有个节点 叫localRepository 是用来配置 maven下载的jar包存放的地址的,如果不配置的话,jar包将会下载到c盘用户文件夹下.m2 文件夹下。此处可指定目录,如下

则maven下载的jar包会保存在 D:/Devolopment/MavenRepository 下

 总结,大家nexus之后使用情形如下图

 

5.如何发布项目到maven私服

我们搭建好私服之后,除了可以快速的下载 jar 包,更重要的时候,我们可以发布自己的项目/模块到私服中,然后可以方便大家共用。

比如,我们的项目是一个商场项目,项目模块是这样的:

 

shoo-parent pom
shop-user jar
shop-search jar
shop-product jar
shop-web war

 

如图所示,我简单了列出了一个大项目可能具有的模块,实际项目模块更多。通常情况下,每个人负责的项目不同。比方说张三负责开发 shop-user,李四负责 shop-web,shop-web需要引用 shop-user 。如果张三开发完了,如何把 jar 提供给李四用呢?发到私服就好了。李四开发的 shop-web,在pom 文件中引入如下依赖:

dependency>
            groupId>org.myshopartifactId>shop-userversion>0.0.1>
>

张三将 shop-user 发到私服就行了,发布需要执行   mvn deploy 命令。

在执行此命令之前,需要做一些配置。

5.1 修改 pom文件

比方说,我们需要发布shop-user到私服。我们需要在shop-user的 pom 文件中增加如下配置:

    distributionManagement>
        snapshotRepository>my-shop-snapshots> 这个 ID 很重要,后面要用到
            >snapshot repository>http://192.168.xx.xx:8081/nexus/content/repositories/snapshots/repository>my-shop-releases>releases repository>http://192.168.xx.xx:8081/nexus/content/repositories/releases/>      

 

配置中的 id 节点配置的 my-shop-snapshots 是自定义的,这个 ID 后面会用到。 url 节点对应的是你的私服连接。 

 5.2 修改 maven 的 setting.xml文件

继续修改 maven 的配置文件,打开apache-maven-3.1.1/conf 下的settings.xml ,在<servers> 节点中间加入如下配置:

   server>  
    >my-shop-releasesusername>adminpassword>admin123>  
   >my-shop-snapshots>   

这里的 id 对应的就是我们上面5.1 中配置的 ID。username,password对于的是我们 nexus 私服的登录密码。如果这个用户名或密码配置错误的话就会报错,mvn deploy 不成功。

配置完了之后,在 shop-user项目的目录下执行 :   mvn delpoy -Dmaven.test.skip=true,可以看到类似如下日志:

Uploading to my-shop-snapshots: http://192.168.xx.xx:8081/nexus/content/repositories/snapshots/com/myshop/shop-user/0.0.5-SNAPSHOT/maven-metadata.xml (483 B at 15 kB/s)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.011 s
[INFO] Finished at: 
[INFO] Final Memory: 31M/411M
[INFO] --------------------------------------------------------------------

从日志Uploading to my-shop-snapshots: http://192.168.xx.xx:8081/ 就看到,我们的 jar 上传的地址是我们自己的私服地址了。

这时去私服窗口检索一下就可以看到刚 deploy 的 jar 文件了。

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


本篇文章和大家了解一下怎么搭建maven私有仓库。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。在本篇文章中,我们将介绍如何搭建一个Maven...
今天小编给大家分享的是如何解决Maven依赖冲突,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。目...
这篇文章主要介绍了Maven仓库分类的优先级是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Maven仓库分类的优先级是什么文...
本篇内容主要讲解“Maven怎么实现自己的starter依赖”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Maven怎
本篇内容主要讲解“maven不能下载oraclejdbc驱动的问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大...
这篇文章主要介绍了怎么使用maven基本命令打包包名的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用maven基本命令打包包...
本篇内容介绍了“maven中profile如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧...
本文小编为大家详细介绍“Maven打包没有指定主类问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Maven打包没有指定主类问题怎么解决”文章能帮助...
这篇文章主要介绍“maven怎么打包动态环境变量”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“maven怎么打包动态环...
今天小编给大家分享一下Maven离线模式打包的步骤是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考
本文小编为大家详细介绍“maven打包时候修改包名称带上git版本号和打包时间的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“maven打包时候修改包...
这篇文章主要讲解了“maven打包怎么指定jdk的版本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“maven打...
这篇“Maven打包时怎么指定启动类”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读
这篇文章主要讲解了“怎么使用jenkins配置maven和JDK”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎
这篇文章主要介绍了maven中配置项目的jdk版本无效怎么排查的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇maven中配置项目的jdk...
今天小编给大家分享一下Maven提示jdk版本不正确怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考
本篇内容主要讲解“maven优缺点及使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“maven优缺点
这篇文章主要介绍“maven项目引入maven库没有jar怎么处理”,在日常操作中,相信很多人在maven项目引入maven库没有jar怎么处理问题上存在疑惑,小编查阅了各式资...
本篇内容主要讲解“怎么下载远程maven仓库的jar并手动放到本地仓库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学...
这篇文章主要介绍“maven私服搭建与使用的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“maven私服搭建...