【Maven】maven的pom文件的位置
前言
在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如log4j.jar,junit.jar等等。每建立一个项目,你都需要建立这样的一个/lib目录,然后复制一对jar文件,这是很明显的重复。重复永远是噩梦的起点,多个项目不共用相同的jar文件,不仅会造成磁盘资源的浪费,也使得版本的一致性管理变得困难。
那么这个时候呢,maven就来啦。maven是一个项目管理工具。maven中有一个maven仓库放置所有的jar文件。
叙述
Maven仓库就是放置所有JAR文件(WAR,ZIP,POM等等)的地方,所有Maven项目可以从同一个Maven仓库中获取自己所需要的依赖JAR,这节省了磁盘资源。此外,由于Maven仓库中所有的JAR都有其自己的坐标,该坐标告诉Maven它的组ID,构件ID,版本,打包方式等等,因此Maven项目可以方便的进行依赖版本管理。你也不在需要提交JAR文件到SCM仓库中,你可以建立一个组织层次的Maven仓库,供所有成员使用。
简言之,Maven仓库能帮助我们管理构件(主要是JAR)。
对于maven来说,maven的仓库分为两类,本地仓库和远程仓库。本地仓库是远程仓库的一个缓冲,当你构建Maven项目的时候,首先会从本地仓库查找资源,如果没有,那么Maven会从远程仓库下载到你本地仓库。这样在你下次使用的时候就不需要从远程下载了。如果你所需要的jar包版本在本地仓库没有,而且也不存在于远程仓库,Maven在构建的时候会报错,这种情况可能是有些jar包的新版本没有在Maven仓库中及时更新。
默认仓库的存储位置
Maven缺省的本地仓库路径为${user.home}/.m2/repository
安装Maven后我们会在用户目录下发现.m2 文件夹。默认情况下,该文件夹下放置了Maven本地仓库.m2/repository。所有的Maven构件(artifact)都被存储到该仓库中,以方便重用。
不过对于初学者在安装配置好maven之后,发现目录下不存在.m2文件夹,其原因是因为没有执行任何maven相关的命令,之后执行之后maven才会自动去创建.m2文件夹。
自定义修改仓库的存储位置
可改变默认的 .m2 目录下的默认本地存储库文件夹。由于windows用户的操作系统都安装在C盘,把Maven仓库放到C盘是很危险的,为此我们需要修改Maven的本地仓库路径。
具体的自定义的本地仓库放到哪里,使用哪个本地仓库,是需要在settings文件中定义的。如下图
有两个位置可能存在settings.xml文件:
用户的安装:$ {user.home} /.m2 / settings.xml
Maven安装:$ {maven.home} /conf/settings.xml
前者的settings.xml也称为全局设置,后者的settings.xml称为用户设置。如果两个文件都存在,则它们的内容将被合并,并且用户(一般在C盘)特定的settings.xml占主导地位。
提示:如果您需要从头开始创建用户特定设置,那么将全局设置从Maven安装复制到$ {user.home} /.m2目录是最简单的方法。Maven的默认settings.xml是一个包含注释和示例的模板,因此您可以快速调整它以符合您的需求。
小结
maven中的pom文件和仓库的位置都有一个默认的位置,不过自己也可以进行自定义的设置。
【Maven】maven的pom文件的位置相关推荐
- maven项目的pom文件中各标签理解
本文来说下maven项目的pom文件中各标签理解 文章目录 常用标签 常用标签 POM是项目对象模型(Project Object Model)的简称 pom.xml主要描述了项目的maven坐标,该 ...
- Maven精选系列--POM文件解析
转载自 Maven精选系列--POM文件解析 之前有介绍到maven的标准目录结构,也看到了maven的核心配置文件pom.xml文件,今天就解析这个配置文件. maven工程的核心文件就是这个pom ...
- idea在克隆Maven项目时pom文件无法识别子模块,依赖导入不进来
问题:idea在clone项目时,发现子模块的一些maven依赖一直到不进来,然后项目就一直报错 后来发现子模块的pom文件的标识与其他子模块的pom文件的标识不一样,后发现正常下的maven项目的p ...
- 关于maven导入工程pom文件报错问题及解决
本文作者:合肥工业大学 管理学院 钱洋 email:1563178220@qq.com 目录 pom文件头报错 pom报错一般性问题 pom文件头报错 1.导入maven文件,经常遇到表头出错问题.报 ...
- IntellijIDEA中maven模块中POM文件不生效
在使用idea的过程中,遇到其中一个maven模块变成灰色的故障(common为正常模块,config为故障模块)如下所示: 正常模块是白色高亮,故障模块为灰色. 会导致的原因 故障模块新增加引用,模 ...
- maven项目的pom文件中常用的简单的标签理解
maven的pom文件一些标签的理解 在本篇文章中,我只是将pom文件中的一些常用的并且比较简单的标签理解标记注释了.还有很多并常用但是也很重要的这里并没有列出.因为本人水平也有限的,所以请谅解. & ...
- 快速生成maven项目中pom文件
由于原项目为web项目,目前需要转换为maven项目,由于项目中存在100+的jar,手动一个个处理很麻烦,使用下方代码可自动生成pom文件. 此代码来源于其他博客,具体博客地址忘了... impor ...
- 解决IDEA 在使用maven创建项目pom文件project出错的问题(亲测有效)
在使用IDEA创建项目的时候,写pom文件project一直报错,一直认为是版本号冲突,clean 重构 都没用,哪怕是重新创建新的项目,project依然出错. 多次确定自己引入依赖没有问题,原因可 ...
- Maven项目在pom文件中引入lib下的第三方jar包并打包进去
场景 Maven中引入依赖的jar包,大都是通过在pom.xml中使用坐标添加依赖的方式. 如果需要引用的jar包在Maven中央仓库下没有,那么怎么在项目中引入. 首先在工程目录下新建libs目录 ...
最新文章
- 科普:浅谈 Hellinger Distance
- 第4周小组作业:WordCount优化
- mathematica实现闭包
- [SDOI2015]星际战争
- windows live writer向cnblog发布文章设置(转)
- java的网络工具netty简介
- ORB-SLAM2图像预处理流程概括
- 机器视觉行业市场现状及发展前景分析
- TensorFlow官方教程翻译:导入数据
- webservice服务及客户端 编程 - 入门
- 方法的创建、重载及递归调用
- Git(1):一个能够快速下载Git.exe的方法
- 一级建造师-通信-光电缆检验
- HTML中的SEO优化
- 1209 实验三同学评论
- 微信小程序跳转公众号h5页面
- 使用hexo基于cactus仙人掌主题最全美化客制教程
- 人工智能 —— 语义网络表示法
- B. Sereja and Mirroring
- C语言关键字 restrict(一)