3

我正在构建一个依赖于库的 Java 项目。mvn.bat clean install按预期生成target子目录,并且项目也可以正常构建mvn.bat clean install

没想到的是,当我删除了库的整个目录时,外部项目仍然可以正常构建,尽管它所依赖的库已经消失了。

这是如何运作的?

更新:原来 Maven 在%USERPROFILE\.m2.

4

2 回答 2

4

您很可能会想到您的本地存储库,您在本地安装的所有内容(以及从中央存储库为您下载的 Maven)都被放置以供以后使用。

您描述的行为是有意的,并且允许构建 A 一次,然后让 B 在需要时引用它,而不必每次都重新编译 A。这通常是非常可取的,尤其是在团队或具有大型代码库的情况下。

请注意,要更改代码,您应该使用 -SNAPSHOT 工件。它们的处理方式略有不同。

于 2013-04-15T06:33:57.447 回答
3

您的依赖项总是下载到 .m2/repository 中。

如果您想对团队中下载的库有一些可预测性,您可以安装像 Nexus 这样的存储库管理器:https ://repository.apache.org/index.html#welcome

您的开发人员将从这个存储库管理器下载他们的依赖项,而不是从 Maven 中心下载依赖项。

于 2013-04-15T06:39:54.733 回答