前言
在使用Maven管理Java项目时,有时需要引入一些存放在系统特定位置的JAR文件。这些JAR文件可能是你自己编写的,也可能是其他来源的。无论是哪种情况,使用 Maven 的 system 范围和 systemPath 参数,可以方便地引入这些本地依赖。
仓库分类
在Java开发中,Maven是非常重要的构建工具,他的仓库机制用于存储和管理项目的依赖。Maven仓库大致可以分为两类:本地仓库和远程仓库。
本地仓库
本地仓库是开发者本地机器上的仓库,所有下载的或者由Maven构建生成的项目的构件(artifact)都存储在这里。这种仓库只能被你的Maven客户端访问。
本地仓库的位置
Maven本地仓库默认情况下位于当前用户的主目录下的.m2目录,即“C:\Users{用户名}.m2\repository”这个位置,这个本地仓库用于存储Maven下载的所有依赖库文件。
修改对应的本地仓库位置
通过更改Maven的全局设置文件settings.xml来改变本地仓库的位置。这个文件位于你Maven安装目录的conf目录下。在settings.xml文件中,你可以找到localRepository这个标签,该标签默认会被注释掉,移除注释并设置新的路径就可以改变本地仓库的位置。
在开发过程中,如果你有一个Java项目或模块(比如一个构建了的jar文件),想把它作为一个本地的依赖供其他项目或模块使用,你可以通过Maven的Install插件来做到这一点。Install插件负责将项目构件安装到本地仓库,《mvn clean install》这条命令将会清除目标目录下的旧版本构建文件,然后生成新的构建文件,并将其安装到本地仓库。这样,其他依赖此构件的模块便能从本地仓库中获取到这个依赖,从而进行进一步的构建和开发。
远程仓库
远程仓库是部署在web服务器上的,可以被多个构建项目共享。
远程仓库的种类
远程仓库主要包括下列三种:
-
中央仓库:Maven 中央仓库是一个由Maven社区维护的,项目中通常都会用到的开源构建会被发布到此处。Maven 会默认从该仓库获取依赖包,不需要进行额外配置。
-
私服仓库:如果发现从中央仓库下载构建过慢,或者需要存储公司内部的专有构建,可以配置私有仓库(如Nexus或Artifactory)。
-
其他仓库:除了Maven中央仓库以外还有其他第三方维护的公共库,这些库里面可能会包