博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Maven仓库介绍
阅读量:3685 次
发布时间:2019-05-21

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

 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为我们提供了一个指令可以很轻松的帮我们实现这个功能。
Cmd代码  收藏代码
    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项目中我们就可以根据定义好的groupId、artifactId、version和packaging类型来添加这里定义好的mysql-connector-5.1.12-bin.jar的引用了。
5.3     部署第三方jar包到远程仓库
前面安装到本地仓库的第三方jar包只能是在本地使用,这样其他人是无法访问到的。如果需要其他人也能访问到的话,我们就需要把它部署到我们的远程仓库上去。我们可以使用以下Maven指令来部署一个第三方jar包到指定的远程仓库。
Cmd代码  收藏代码
    mvn deploy:deploy-file  
     -Dfile=<filePath>  
     -DgroupId=<groupId>  
     -DartifactId=<artifactId>  
     -Dversion=<version>  
     -Dpackaging=<packagingType>  
     -DrepositoryId=<repositoryId>  
     -Durl=<urlOfTheRepositoryToDeploy>  
 
把第三方jar包部署到远程仓库的参数和安装第三方jar包到本地仓库类似,但它多了两个参数,一个是repositoryId和url。repositoryId表示需要部署到的远程仓库的id,这个远程仓库是定义在settings.xml中的;url表示需要部署到的远程仓库的url。
默认情况下,使用deploy:deploy-file部署的第三方jar包将会生成一个通用的pom。如果在部署的过程中不需要生成这个pom,我们可以在使用该指令的时候加上参数“-DgeneratePom=false”。
如果我们在使用deploy:deploy-file部署第三方jar到远程仓库需要使用一个已有的pom的时候,我们需要在使用该指令的时候加上参数“-DpomFile=<pomFilePath>”。如:
Cmd代码  收藏代码
    mvn deploy:deploy-file  
     -Dfile=<filePath>  
     -DpomFile=<pomFilePath>  
     -DrepositoryId=<repositoryId>  
     -Durl=<urlOfTheRepositoryToDeploy>  
 
细心的读者可能已经发现了,我们在使用了参数pomFile的时候没有指定groupId、artifactId、version和packaging参数。这是因为当我们指定了pomFile的时候这些参数都可以从指定的pom文件中获得。
 
当我们需要部署的是一个源码jar包的时候,packaging应该指定为java-source,而且generatePom应该指定为false。

转载地址:http://wsxdn.baihongyu.com/

你可能感兴趣的文章
switch条件选择结构,switch可以用于那些类型数据的判断,return和break
查看>>
while下有scanner循环比对,直至输入满足条件终止循环,equals,韩梅梅do...while不断努力走向chengg
查看>>
利用while循环结构,给定班级人数scanner动态录入成绩计算平均值
查看>>
循环结构,while,do...while,do...while具体实例
查看>>
for循环打印99乘法表,for循环寻找100以内的偶数个数并求和,程序中空格\t
查看>>
设置用户登陆,用户有3次机会输入账号密码,账号密码输入正确则打印输出99乘法表,流程控制语句关键字break和continue,结束方法体return,continue
查看>>
打印三角形,字符串比较,Math.pow,水仙花数,菱形,while对折达到珠穆朗马蜂高度,输出乘数列,scanner,input,输入条件判断是否循环,do...while,顺序分支循环
查看>>
数组,数组越界异常,增强for循环,数组索引,循环遍历数组,利用数组动态输入学生成绩,循环遍历输出数组内容
查看>>
操作数组元素,数组赋值,卫语句,==,Array.equals(数组1,数组2),equals,循环遍历输出数组元素,增强for遍历输出元素,switch,if..else..,比较数组元素是否一致
查看>>
动态录入学生个数,录入每个数组元素,并求出数组元素的最值以及平均值
查看>>
复制数组元素,合并两个已知数组,String数组类型,增强for循环,native,Array.copyof()扩容数组创建新数组,合并数组,Array类的方法对数组进行截断或者扩容
查看>>
Array类,Array.copyof截断和扩容创建新数组,数组引用,copyof其实也是new出了一个新的内存空间
查看>>
删除数组元素,空指针问题
查看>>
冒泡排序,选择排序,插入排序
查看>>
包装类,integer对象,数值型字符串转int类型,装箱,gui查看编译后的class文件,valueof,Integer整数缓存池,比较两个包装类对象
查看>>
字符串转int整型,parseInt底层实现,String类下的charAt()方法,字符串转换成指定类型的一个数值parseXXX(),XXXvalue,valueof,character常用类
查看>>
Character类中的静态方法,Character
查看>>
int整型转字符串,字符串转整型valueof,
查看>>
+=和=,自动类型转换,java基本数据类型,/和%,近似存储,字符串的拼接,i++,++i,四舍五入,default,局部变量
查看>>
docker下载后安装失败:This computer doesn’t have VT-X/AMD-v enabled. Enabling it in the BIOS is mandatory.
查看>>