如何在Maven的本地项目中安装依赖项?

问题描述:

如何在我的本地项目中安装依赖项/库?如何在Maven的本地项目中安装依赖项?

因为现在我看到我的所有依赖得到安装到:

C:\Users\yomac_000\.m2\repository

随着NPM(依赖/库安装程序一样的Maven但后来的Node.js)我可以做下面的命令来安装库到我的项目:

npm install <library_name>

如果我做的:

npm install -g <library_name>

然后,将库安装在C:\ somepath中。

.m2/repository文件夹被称为本地存储库。所有依赖关系都被下载到这个文件夹中,所以你的项目可以共享它们。如果你想为你的项目“安装”依赖项,创建pom.xml并设置合适的打包类型(例如,针对Web应用程序的war)和范围。这样可以在您的WEB-INF/lib文件夹中访问依赖关系。

如果您确实需要更改本地存储库的路径,可以通过编辑maven配置来完成。请参阅this page以获取有关Maven配置的信息。


一般信息有关pom.xml文件见https://maven.apache.org/pom.html

有关maven使用的依赖关系机制的详细信息,请参阅https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html。这里还描述了可用的范围。

+0

如果我用'/path/to/local/repo/ localRepository>'更改本地存储库的路径。然后,'项目A'和'项目B'仍然将它们的库安装在新更改的路径中。那么,如何管理'项目A'在项目A'中安装其依赖关系? – superkytoz

+0

我不确定是否有这种选项。 Maven不会这样工作。它使你的项目分享依赖。然后,当你建立一个项目时,它将依赖与项目一起打包。 I. e。你不需要关心本地存储库的位置,只需在pom中定义依赖关系,maven就会关心其余部分。请参阅我在答案中提到的链接。 –

+0

是的,我知道,但是如果'项目A'使用名为'testLibrary 1.0'的库和'项目B'使用名为'testLibrary 2.0'的库,会发生什么?然后,我假设Maven将删除'testLibrary 1.0'并使用'testLibrary 2.0'更新它。这意味着我无法运行'项目A'。 – superkytoz