`
234390216
  • 浏览: 10194042 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:460812
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1771850
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1395469
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:393909
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:678239
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:529311
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1178754
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:461973
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:150157
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:66872
社区版块
存档分类
最新评论

Maven简介(四)——仓库

阅读更多

5       Maven仓库介绍

5.1     简介

Maven仓库是用来存储工件的。Maven仓库主要包括本地仓库和远程仓库。当Maven需要一个工件的时候,它会先从本地仓库取,只有在本地仓库不存在对应的工件的时候,才会从远程仓库把对应的工件下载下来保存在本地仓库,并从本地仓库获取所需的工件。默认的本地仓库位置是用户家目录下面的“.m2/repository”,我们可以在Maven安装目录下面的settings.xml文件中通过localRepository定义本地仓库的位置。默认的远程仓库是“http://repo.maven.apache.org/maven2/”。

在这里我想陈述一个问题,Maven官方是不主张我们在使用Maven的时候还把项目依赖的一些jar包提交到svn等版本控制系统中进行版本控制。这主要有以下原因:

1)      我们已经使用了Maven来管理我们的依赖jar包,那么这些jar包就都会保存在本地仓库中,我们没有必要每个项目都保存一个依赖jar包的拷贝,这会浪费很多的磁盘空间,也违背了Maven设计的初衷。

2)      当我们没有把依赖的jar包提交到版本控制系统的时候,这也就意味着我们这个项目的容量会相对而言小一些,这给我们带来的优点就是在我们检出该项目的时候速度会相对而言更快一些。

3)      Jar包一般都不需要进行版本控制,因为它的变化一般不大,我们很少会去更改一个jar包。

有的时候因为安全或者速度的原因,我们不允许直接从互联网上下载依赖的jar包,这个时候内部的仓库就出来了。我们可以从这个内部仓库下载工件,也可以把工件发布到该仓库。这个内部仓库的概念就相当于是公司内部自己管理了一套工件库,而且可以自由的往这个工件库里面发布公司自己的工件供大家共享。

5.2     安装第三方jar包到本地仓库

有的时候可能我们需要把本地的第三方jar包安装到我们的Maven本地仓库来构建我们的Maven项目。Maven为我们提供了一个指令可以很轻松的帮我们实现这个功能。

       mvn install:install-file -Dfile=<filePath> -DgroupId=<groupId> -DartifactId=<artifactId> -Dversion=<version> -Dpackaging=<packagingType>

 

       参数file表示需要安装的第三方jar包在本地的路径;

       参数groupId用于定义该jar包安装后的groupId

       参数artifactId用于定义该jar包安装后的artifactId

       参数version用于定义该jar包安装后的版本;

       参数packaging用于定义该jar包安装后的打包类型。

       比如现在我想把我电脑上的“D:\develop\lib\mysql-connector-java-5.1.12-bin.jar”安装到我的Maven本地仓库,那么我就可以在命令窗口运行以下指令来达到这个目的:

       mvn install:install-file -Dfile=D:\develop\lib\mysql-connector-5.1.12-bin.jar -DgroupId=mysql -DartifactId=mysql -Dversion=5.1.12 -Dpackaging=jar

       之后在其他Maven项目中我们就可以根据定义好的groupIdartifactIdversionpackaging类型来添加这里定义好的mysql-connector-5.1.12-bin.jar的引用了。

5.3     部署第三方jar包到远程仓库

前面安装到本地仓库的第三方jar包只能是在本地使用,这样其他人是无法访问到的。如果需要其他人也能访问到的话,我们就需要把它部署到我们的远程仓库上去。我们可以使用以下Maven指令来部署一个第三方jar包到指定的远程仓库。

mvn deploy:deploy-file
 -Dfile=<filePath>
 -DgroupId=<groupId>
 -DartifactId=<artifactId>
 -Dversion=<version>
 -Dpackaging=<packagingType>
 -DrepositoryId=<repositoryId>
 -Durl=<urlOfTheRepositoryToDeploy>

 

把第三方jar包部署到远程仓库的参数和安装第三方jar包到本地仓库类似,但它多了两个参数,一个是repositoryIdurlrepositoryId表示需要部署到的远程仓库的id,这个远程仓库是定义在settings.xml中的;url表示需要部署到的远程仓库的url

默认情况下,使用deploy:deploy-file部署的第三方jar包将会生成一个通用的pom。如果在部署的过程中不需要生成这个pom,我们可以在使用该指令的时候加上参数“-DgeneratePom=false”。

如果我们在使用deploy:deploy-file部署第三方jar到远程仓库需要使用一个已有的pom的时候,我们需要在使用该指令的时候加上参数“-DpomFile=<pomFilePath>”。如:

mvn deploy:deploy-file
 -Dfile=<filePath>
 -DpomFile=<pomFilePath>
 -DrepositoryId=<repositoryId>
 -Durl=<urlOfTheRepositoryToDeploy>

 

细心的读者可能已经发现了,我们在使用了参数pomFile的时候没有指定groupIdartifactIdversionpackaging参数。这是因为当我们指定了pomFile的时候这些参数都可以从指定的pom文件中获得。

 

当我们需要部署的是一个源码jar包的时候,packaging应该指定为java-source,而且generatePom应该指定为false

分享到:
评论

相关推荐

    nexus2.14.14.zip搭建maven私服工具——linux版

    nexus2.14.14.zip搭建maven私有仓库工具,linux版。在linux下解压,./bin/nexus start启动,默认情况下,不建议以root用户运行Nexus,可以修改bin/nexus中的配置跳过警告(修改RUN_AS_USER=root),vi bin/nexus,...

    Maven3实战笔记03Maven仓库

    Maven3实战笔记——03Maven仓库。

    纯小白eclipse for java 配置若依(ruoyi)快速开发平台

    1.打开eclipse——Preferences——Maven——installations——Add 2.选择你的Maven文件夹 3.如图: 4.apply 5.改maven中conf文件夹下setting文件(编辑器打开) 6.修改仓库 7.此处添加自己的仓库路径(切记全程...

    Maven3实战笔记05仓库依赖解析与插件解析

    Maven3实战笔记05——仓库依赖解析与插件解析。

    Maven 权威指南 非扫描版

    使用 如果Eclipse 安装了Maven插件,选 择pom.xml文件,击右键——&gt;选择 Run As——&gt; Maven build。 三、在eclipse上安装maven插件 1、在线安装 略。 2、离线安装 下载maven的eclipse插件包 解压到eclipse...

    《Maven 实战》.zip

    Maven——这一Java社区事实标准的项目管理工具,能帮你从琐碎的手工劳动中解脱出来,帮你规范整个组织的构建系统。不仅如此,它还有依赖管理、自动生成项目站点等超酷的特性,已经有无数的开源项目使用它来构建项目...

    Java之——在Maven仓库中添加Oracle JDBC驱动

    由于Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库。 一.下载Oracle JDBC Driver 1.通过Oracle官方网站下载相应版本:...

    Maven实战 高清版

    Maven——这一Java社区事实标准的项目管理工具,能帮你从琐碎的手工劳动中解脱出来,帮你规范整个组织的构建系统。不仅如此,它还有依赖管理、自动生成项目站点等超酷的特性,已经有无数的开源项目使用它来构建项目...

    《Maven实战》

    Maven——这一Java社区事实标准的项目管理工具,能帮你从琐碎的手工劳动中解脱出来,帮你规范整个组织的构建系统。不仅如此,它还有依赖管理、自动生成项目站点等超酷的特性,已经有无数的开源项目使用它来构建项目...

    Maven实战.pdf

    Maven——这一 Java 社区事实标准的项目管理工具,能帮你从琐碎的手工劳动中解脱出来,帮你规范整个组织的构建系统。不仅如此,它还有依赖管理、自动生成项目站点等超酷的特性,已经有无数的开源项目使用它来构建...

    SSM项目使用maven-跑腿小程序后台

    ———————————————— 版权声明:本文为CSDN博主「项目花园范德彪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:...

    用Nexus做Maven私服全攻略

    更详细的帮助手册请上官方网站查看,这里推荐一个翻译中的书籍——《Maven权威指南》(在线阅读英文版,中文版),一本全面介绍Maven的书,其中也有介绍Nexus的章节,猛击这。Nexus的优点这里得啰嗦一下(摘抄自...

    Maven实战(中文)

    Maven——这一Java社区事实标准的项目管理工具,能帮你从琐碎的手工劳动中解脱出来,帮你规范整个组织的构建系统。不仅如此,它还有依赖管理、自动生成项目站点等超酷的特性,已经有无数的开源项目使用它来构建项目...

    Maven实战 经典电子版

    Maven——这一Java社区事实标准的项目管理工具,能帮你从琐碎的手工劳动中解脱出来,帮你规范整个组织的构建系统。不仅如此,它还有依赖管理、自动生成项目站点等超酷的特性,已经有无数的开源项目使用它来构建项目...

    Maven实战

    Maven——这一Java社区事实标准的项目管理工具,能帮你从琐碎的手工劳动中解脱出来,帮你规范整个组织的构建系统。不仅如此,它还有依赖管理、自动生成项目站点等超酷的特性,已经有无数的开源项目使用它来构建项目...

    最新 archetype-catalog.xml (截止2018/5/26前最新)

    remote——指向Maven中央仓库的Catalog file:// http:// 指定方法2 直接下载archetype-catalog.xml文件,放到本地的apache-maven目录中。 在使用mvn archetype:generate命令时,加上-DarchetypeCatalog=local...

    本地jar包打包到本地仓库 ROOT.war

    Read me —— 指南 通过maven的命令 mvn install:install-file -Dfile……比较繁琐,我把这个繁琐的工作做了一次封装,批量操作,方便自己也分享给各位! (1)运行环境,需要用tomcat8.0及以上版本(其他容器...

    第16期民宿前后端分离VUE+SpringBoot

    ———————————————— java精品项目,毕业设计,计算机系,计算机毕业设计,程序设计,设计与实现,源码,web期末大作业。 作者:公众号:猿码仓库 预览:...

    此项目由于毕设后端开发.rar

    最近在写毕业设计。对于后端的技术栈我是由以下技术完成的。对于毕设内容不作介绍了。说一说遇到的一些问题和如何解决的。 java1.8 springboot2.1.3 maven mysql 5.7 redis 2.18 mybatis tk-...—————————

    nexus-2.11.2-03-bundle.rar

    Nexus——搭建Maven私有仓库,参见博文:https://blog.csdn.net/l1028386804/article/details/71037336

Global site tag (gtag.js) - Google Analytics