使用nexus搭建maven仓库
发布日期:2021-06-30 16:30:48 浏览次数:2 分类:技术文章

本文共 5561 字,大约阅读时间需要 18 分钟。

        Maven是一个采用纯Java编写的开源项目管理工具, Maven采用了一种被称之为Project Object Model(POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中, 通过该文件Maven可以管理项目的整个生命周期,包括清除、编译,测试,报告、打包、部署等等。目前Apache下绝大多数项目都已经采用Maven进行管理. 而Maven本身还支持多种插件, 可以方便更灵活的控制项目, 开发人员的主要任务应该是关注商业逻辑并去实现它, 而不是把时间浪费在学习如何在不同的环境中去依赖jar包,项目部署等。

       maven和ant都是软件构建工具(软件管理工具),maven比ant更加强大,已经取代了ant,jar包的声明式依赖描述。maven有jar包的仓库。svn是一个软件的版本控制工具,是一个协同开发工具。svn的仓库存放的是项目的源码,历史版本的备份,声明每次版本的修改情况。在工作中可能存在有些开发机器不能上网,大量的机器获取jar包会导致公司网络很慢,还有时候公司会自己发布自己的项目版本,其他的项目可能会依赖引用到,所以就需要用到Maven的本地仓库。有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库。如果某个IP地址恶意的下载中央仓库内容,例如全公司100台机器使用同一个IP反复下载,这个IP(甚至是IP段)会进入黑名单,因此稍有规模的使用Maven时,应该用Nexus架设私服。下面就这个构建本地Maven仓库进行阐述。

一:介绍

  Nexus是Maven的仓库管理器,用来搭建一个本地仓库服务器,这样做的好处便于管理,节约网络资源, 速度快,可以通过SNAPSHOT版本控制,开进行模块间的高效依赖开发。
二:下载

  我们从https://www.sonatype.com/download-sonatype-trial来获取最新版本。      

       这里使用的是nexus-3.11.0-01-win64.zip

三:解压
  解压到本地后,目录结构。
  在bin里我们可以看到nexus.bat。到时候我们可以通过这个命令来安装卸载,启动停止nexus服务。

四:配置环境变量

  由于是用java开发的。所以需要安装jdk,并配置好java的环境变量,这里就不表了。
  新建环境变量Nexus 值为解压的目录 F:\nexus-3.11.0-01\ 

  path中加入;%Nexus%\bin

五:安装服务,启动服务

  我们先安装服务。 nexus.bat install
  这样就可以安装了,提示安装好后。我们可以启动服务。nexus.bat start

  提示成功后我们可以输入127.0.0.1:8081/nexus可以访问到。

六:使用

      在Views/Repositories-->Repositories里进行配置, nexus里可以配置3种类型的仓库,分别是proxy、hosted、group

     proxy:是远程仓库的代理。比如说在nexus中配置了一个central repository的proxy,当用户向这个proxy请求一个artifact,这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用
      Hosted:是宿主仓库,用户可以把自己的一些构件,deploy到hosted中,也可以手工上传构件到hosted里。比如说oracle的驱动程序,ojdbc6.jar,在central repository是获取不到的,就需要手工上传到hosted里
      Group:是仓库组,在maven里没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom中配置多个地址,只要统一配置group的地址就可以了右边那个Repository Path可以点击进去,看到仓库中artifact列表。不过要注意浏览器缓存。
      virtual:也是中央仓库镜像,支持M1老版本

  在主界面右上角有个Log in。点击这个可以登录。用户名是admin 密码默认的是 admin123

       登录后,点击左边Views/Repositores下的Repositories

       hosted:本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第二方库。 

  proxy:代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。 
  group:仓库组,用来合并多个hosted/proxy仓库,多个repository使用资源时,只需引用一个group即可。

  Central:是Maven的中央仓库,我们这里就那这个举例。

        - hosted :宿主仓库 ,该仓库属于该公司私有的

        1. 3rd part : 第三方的jar包,但是该jar包没有在中心仓库保存,驱动.jar
        2. snapshot :测试版本、镜像版本  easyNet.war
        3. release  : 发行版本
             - proxy  : 代理仓库  :代理中心仓库的jar包
             - public :仓库组 :虚拟的概念  可以包含其他的仓库 

  选择仓库的类型Repository Policy 是Release 还是Snapshot

  下载远程索引文件

  点击Central这个仓库,然后点击Configration。在Download Remote Indexes改成True保存即可。

       由于索引比较大,所以得过段时间才能下载完毕。
       Routing选项可以看到当前仓库与远程仓库的状态。并且制定更新频率。

       将设置好的仓库放进仓库组里。

  点击Public Repositories->Configuration

  将Central放到左边即可。

七:配置Maven

        打开settings.xml配置文件。

  在<mirror>节点配置如下即可

nexus
*
Human Readable Name for this Mirror.
http://127.0.0.0:8081/nexus/content/groups/public/
添加账号密码
releases
admin
admin123
snapshots
admin
admin123

八:使用myeclipse上传

pom.xml,进行如下配置。

snapshots
http://127.0.0.1:8080/nexus-2.6.2/content/repositories/snapshots/
releases
http://127.0.0.1:8080/nexus-2.6.2/content/repositories/releases/

右键这个项目,run as   ->  maven build  ,然后输入clean deploy进行部署。

九:从私服下载(引用)jar包

pom.xml中进行如下配置。

pig
pig
0.12.1
true
public
public
http://127.0.0.1:8080/nexus-2.6.2/content/groups/public/
never
true
public
public
http://127.0.0.1:8080/nexus-2.6.2/content/groups/public/

附settings.xml文件如下:

nexus-realease
admin
admin123
nexus-snapshots
admin
admin123
nexus
*
Nexus
http://localhost/nexus-2.11/content/groups/public/
nexus
central
Nexus
http://central
true
true
central
Nexus
http://central
true
true
jdk-1.7
true
1.7
1.7
1.7
1.7
nexus

转载地址:https://kevin.blog.csdn.net/article/details/80196151 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:幻灯片插件jquery.sliderPro.min.js
下一篇:maven没有打包xml文件

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年05月03日 21时45分58秒