006_Maven仓库

本文详细介绍了Maven的仓库概念,包括本地仓库、中央仓库和远程仓库的使用。Maven通过仓库管理项目依赖,首次运行时创建本地仓库,并优先从本地查找构件,若未找到则从中央仓库或远程仓库下载。中央仓库包含大量常用库,而远程仓库用于存放特定或自定义的依赖。当依赖无法在所有仓库找到时,Maven构建会失败。此外,还演示了如何将自定义jar包作为Maven项目的外部依赖进行管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Maven仓库

1.1. 在Maven的术语中, 仓库是一个位置(place)。

1.2. Maven仓库是项目中依赖的第三方库, 这个库所在的位置叫做仓库。

1.3. 在Maven中, 任何一个依赖、插件或者项目构建的输出, 都可以称之为构件。

1.4. Maven仓库能帮助我们管理构件(主要是JAR), 它就是放置所有JAR文件(WAR, ZIP, POM等等)的地方。

1.5. Maven仓库有三种类型:

  • 本地(local)
  • 中央(central)
  • 远程(remote)

2. 本地仓库

2.1. Maven的本地仓库, 在安装Maven后并不会创建, 它是在第一次执行maven命令的时候才被创建。

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

2.3. 默认情况下, 不管Linux还是Windows, 每个用户在自己的用户目录下都有一个路径名为.m2/repository/的仓库目录。

2.4. Maven本地仓库默认被创建在%USER_HOME%目录下。要修改默认位置, 在%MAVEN_HOME%/conf目录中的Maven的settings.xml文件中定义另一个路径。

3. 中央仓库

3.1. Maven中央仓库是由Maven社区提供的仓库, 其中包含了大量常用的库。

3.2. 中央仓库包含了绝大多数流行的开源Java构件, 以及源码、作者信息、SCM、信息、许可证信息等。一般来说, 简单的Java项目依赖的构件都可以在这里下载到。

3.3. 中央仓库的关键概念:

  • 这个仓库由Maven社区管理。
  • 不需要配置。
  • 需要通过网络才能访问。

3.4. Maven内置了一个中央仓库地址, 访问的url可以从%MAVEN_HOME%\lib\maven-model-builder-3.8.4.jar\org\apache\maven\model\pom-4.0.0.xml找到

 

 3.5. 访问中央仓库https://repo.maven.apache.org/maven2

4. 远程仓库(可以在企业内部局域网中使用)

4.1. 如果Maven在中央仓库中也找不到依赖的文件, 它会停止构建过程并输出错误信息到控制台。为避免这种情况, Maven提供了远程仓库的概念, 它是开发人员自己定制仓库, 包含了所需要的代码库或者其他工程中用到的jar文件。

4.2. 举例说明, 使用下面的pom.xml, Maven将从远程仓库中下载该pom.xml中声明的所依赖的(在中央仓库中获取不到的)文件。

5. 执行Maven构建命令时, Maven开始按照以下顺序查找依赖的库:

5.1. 步骤1: 在本地仓库中搜索, 如果找不到, 执行步骤2, 如果找到了则执行其他操作。

5.2. 步骤2: 在中央仓库中搜索, 如果找不到, 并且有一个或多个远程仓库已经设置, 则执行步骤4, 如果找到了则下载到本地仓库中以备将来引用。

5.3. 步骤3: 如果远程仓库没有被设置, Maven将简单的停滞处理并抛出错误(无法找到依赖的文件)。

5.4. 步骤4: 在一个或多个远程仓库中搜索依赖的文件, 如果找到则下载到本地仓库以备将来引用, 否则Maven将停止处理并抛出错误(无法找到依赖的文件)。

6. Maven引入外部依赖(不在仓库中的jar包)

6.1. 新建一个名为MavenOutDependency的Java项目

 

6.2. 在MavenOutDependency的Java项目中创建一个名为MvnOutDpy.java的接口 

6.3. 右键MavenOutDependency项目——>Export... 

6.4. Java——>JAR file 

6.5. 选择jar导出的位置——>Finish 

6.6. 在MavenWeb工程下, 新建一个lib文件夹, 拷贝MavenOutDependency1.0.0.jar到lib下 

6.7. 在pom.xml文件中添加依赖 

6.8. 创建CommonDB.java实现MvnOutDpy.java接口 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值