怎么自定义maven的中央仓库位置?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么自定义maven的中央仓库位置?相关的知识,希望对你有一定的参考价值。

运行Maven的时候,Maven所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。

比如说,你的项目配置了junit-3.8的依赖,在你运行mvn test 的时候,Maven需要使用junit-3.8的jar文件,它首先根据坐标查找本地仓库,如果找到,就直接使用。如果没有,Maven会检查可用的远程仓库配置,然后逐个尝试这些远程仓库去下载junit-3.8的jar文件,如果远程仓库存在该文件,Maven会将其下载到本地仓库中,继而使用。如果尝试过所有远程仓库之后,Maven还是没能够下载到该文件,它就会报错。

如何使用开源中国maven仓库。

1.安装Maven。如果需要使用到 Maven ,必须首先安装 Maven , Maven 的下载地址在 Apache Maven 中有,您也可以点击这里下载。下载后解压到你要放的目录下,然后配置一下环境变量。新建环境变量  M2_HOME  ,输入值为 Maven 的安装目录。

2.修改 settings.xml。在 Maven 中使用 OSChina 的 Maven 服务还需要简单配置一下 Maven,在 Maven 的安装目录下的 conf 文件下有个  settings.xml  文件,接下来我们需要对这个文件做简单的修改,修改前您可以简单备份下该文件。 备份后直接下载替换就ok了,也可以自行修改具体修改内容见这里。文件下载点击 settings.xml 下载。

3.创建Maven项目。首先创建一个Maven的Project,我们勾选上Create a simple project (不使用骨架),这里的Packing 选择 war的形式,由于packing是war包,那么下面也就多出了webapp的目录,由于我们的项目要使用eclipse发布到tomcat下面,这里我们需要先把项目转成dynamic web project。接下来观察我们的项目结构,多了一个web content目录。在src下找到webapp目录,然后finish。最后一步,我们要把当前的build path 指向 Maven Dependency, 直接点击add,选择Java Build Path Entries 然后next后再点击finish完成。

参考技术A

运行Maven的时候,Maven所需要的全部构件都是从本地仓库获取的。其次本地仓库没有的话,Maven会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。通过这种方法可以自定义Maven的中央仓库位置。

Maven仓库就是放置所有JAR文件(WAR,ZIP,POM等等)的地方,所有Maven项目可以从同一个Maven仓库中获取自己所需要的依赖JAR,这节省了磁盘资源。

此外,由于Maven仓库中所有的JAR都有其自己的坐标,该坐标告诉Maven它的组ID,构件ID,版本,打包方式等等,因此Maven项目可以方便的进行依赖版本管理。你也不在需要提交JAR文件到SCM仓库中,你可以建立一个组织层次的Maven仓库,供所有成员使用。

参考技术B

运行Maven的时候,Maven所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。

可以自定义本地仓库的位置,修改$user.home/.m2/settings.xml :

<settings>
...
<localRepository>D:\\java\\repository</localRepository>
...
</settings>

你还可以在运行时指定本地仓库位置:
mvn clean install -Dmaven.repo.local=/home/juven/myrepo/
还有一点需要理解的是,当我们运行install的时候,Maven实际上是将项目生成的构件安装到了本地仓库,也就是说,只有install了之后,其它项目才能使用此项目生成的构件。
了解了本地仓库,接着了解一下Maven缺省的远程仓库,即Maven中央仓库。
安装好Maven之后,可以建立一个简单的项目,配置一些简单的依赖,然后运行mvn clean install,项目就构建好了。我们没有手工的去下载任何jar文件,这一切都是因为Maven中央仓库的存在,当Maven在本地仓库找不到需要的jar文件时,它会查找远程仓库,而一个原始的Maven安装就自带了一个远程仓库——Maven中央仓库。
这个Maven中央仓库是所有Maven POM的父POM,所有Maven项目继承该配置,你可以在这个POM中发现如下配置:

<repositories>
<repository>
<id>central</id>
<name>Maven Repository Switchboard</name>
<layout>default</layout>
<url>http://repo1.maven.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>


以上是关于怎么自定义maven的中央仓库位置?的主要内容,如果未能解决你的问题,请参考以下文章

maven替换中央仓库,阿里云镜像下载及自定义本地仓库位置

Maven的默认中央仓库

怎样从maven的中央仓库中更新jar包到本地仓库

Windows 配置Maven的本地仓库和阿里云远程中央仓库

maven中央仓库的配置在哪里?superpom是什么?中央仓库查找三方包

如何发布Maven依赖到中央仓库