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项目中我们就可以根据定义好的groupId、artifactId、version和packaging类型来添加这里定义好的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包到本地仓库类似,但它多了两个参数,一个是repositoryId和url。repositoryId表示需要部署到的远程仓库的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的时候没有指定groupId、artifactId、version和packaging参数。这是因为当我们指定了pomFile的时候这些参数都可以从指定的pom文件中获得。
当我们需要部署的是一个源码jar包的时候,packaging应该指定为java-source,而且generatePom应该指定为false。
相关推荐
nexus2.14.14.zip搭建maven私有仓库工具,linux版。在linux下解压,./bin/nexus start启动,默认情况下,不建议以root用户运行Nexus,可以修改bin/nexus中的配置跳过警告(修改RUN_AS_USER=root),vi bin/nexus,...
### Maven实战——入门篇 #### Maven简介与概念 Maven是一种强大的、跨平台的项目管理工具,主要用于基于Java平台的项目构建、依赖管理和项目信息管理。无论是小型的开源类库项目还是大型的企业级应用,Maven都能...
首先,我们来看看Maven的核心配置文件——`settings.xml`。这个文件位于用户的`.m2`目录下,它定义了Maven的全局配置,包括本地仓库路径、远程仓库列表、镜像设置等。`settings.xml`中的`localRepository`元素指定了...
本教程 Maven 仓库的用例包括:在内部仓库中创建 2 个子库,Ibiblio 缓存‘Ibiblio-cache’ ——用于存储从 ibiblio.org 中下载的构件,可以公开访问,它将从外部的 ibiblio 仓库中同步;内部仓库 internal-maven-...
** Maven本地仓库搭建工具Nexus简介 ** Maven是一个广泛使用的Java项目管理和综合工具,它通过依赖管理和项目构建生命周期管理简化了项目的构建、部署和管理。然而,随着项目的增多,依赖库也会变得庞大,直接从...
在"apache-maven-3.3.9_阿里云仓库"中,我们讨论的是Maven的特定版本——3.3.9。这个版本发布于2015年12月,是一个稳定且广泛使用的版本。它包含了对之前版本的各种改进和修复,确保了更高效、更可靠的构建过程。 ...
1.打开eclipse——Preferences——Maven——installations——Add 2.选择你的Maven文件夹 3.如图: 4.apply 5.改maven中conf文件夹下setting文件(编辑器打开) 6.修改仓库 7.此处添加自己的仓库路径(切记全程...
本篇文章将详细介绍如何在Linux系统上安装并配置Maven私有库——Nexus。 首先,让我们了解什么是Nexus。Nexus是Sonatype公司开发的一款强大的Maven仓库管理器,它可以作为代理仓库,缓存远程仓库的依赖,同时也可以...
接着,我们来安装构建工具——maven。Apache Maven是一个项目管理和综合工具,它可以帮助开发者管理项目构建、报告、依赖关系等。以下是maven的安装步骤: 1. 访问Apache官网...
`settings.xml`文件可以用来定制个人的Maven行为,比如设置默认的字符集,或者定义特定的仓库用于更快地获取依赖。 此外,Maven的POM(Project Object Model)文件是每个Maven项目的核心,它定义了项目的基本信息、...
#### Maven与Nexus简介 - **Maven**:Apache Maven是一款基于项目对象模型(POM)的软件项目管理和理解工具。通过一系列标准生命周期构建项目,简化了项目的构建、依赖管理和文档生成等工作。 - **Nexus**:Nexus ...
Maven仓库是Java开发中不可或缺的一部分,它管理着各种项目的依赖,使得开发者无需手动处理库的下载和配置。在本主题中,我们关注的是一个特定的库——AspectJ Weaver,版本为1.9.6,它是AspectJ框架的核心组件,...
【标题】"maven本地仓库001"指的是在Java开发中使用的一种依赖管理工具——Maven的一个本地仓库版本,具体为apache-maven-3.5.2。这个仓库是Maven用来存储和检索项目构建时所需的各种jar包和资源的地方。 【描述】...
**Maven教程:基础篇——尚硅谷学习笔记 2022年** Maven是一个强大的Java项目管理和构建工具,由Apache软件基金会开发。它通过提供一个标准的项目对象模型(Project Object Model,POM)来简化项目的构建过程,并...
2. **Maven的构建生命周期**:Maven有三个主要的生命周期阶段——clean、default和site。clean用于清理项目,default用于构建项目(包括编译、测试、打包、部署等),site则用于生成项目文档。 3. **插件系统**:...
使用 如果Eclipse 安装了Maven插件,选 择pom.xml文件,击右键——>选择 Run As——> Maven build。 三、在eclipse上安装maven插件 1、在线安装 略。 2、离线安装 下载maven的eclipse插件包 解压到eclipse...
最后,如果远程仓库也没有,Maven会访问全球最大的公共仓库——中央仓库(Central Repository)。 ** apache-maven-3.3.9 ** `apache-maven-3.3.9` 是Apache Maven的一个具体版本,它包含了Maven的完整安装包。这...
#### 四、Apache Maven —— 构建生命周期 **4.1 构建生命周期概述** 构建生命周期是 Maven 中定义的一系列按顺序执行的构建阶段。每个生命周期都由一系列相互独立但顺序执行的阶段组成。Maven 提供了三种主要的...
1. Maven简介 Maven基于POM模型,使得每个项目都有一个清晰的结构和描述。POM文件包含了项目的信息,如版本号、依赖关系、构建目标等。Maven通过标准化项目结构和构建过程,如src/main/java和src/test/java目录结构...
《Maven仓库失效文件清理工具——MrCleaner详解》 在软件开发过程中,Maven作为Java项目管理的重要工具,其本地仓库(Local Repository)扮演着不可或缺的角色。然而,随着时间的推移,仓库中可能会积累大量的失效...