我正在构建一个依赖于库的 Java 项目。mvn.bat clean install
按预期生成target
子目录,并且项目也可以正常构建mvn.bat clean install
。
没想到的是,当我删除了库的整个目录时,外部项目仍然可以正常构建,尽管它所依赖的库已经消失了。
这是如何运作的?
更新:原来 Maven 在%USERPROFILE\.m2
.
您很可能会想到您的本地存储库,您在本地安装的所有内容(以及从中央存储库为您下载的 Maven)都被放置以供以后使用。
您描述的行为是有意的,并且允许构建 A 一次,然后让 B 在需要时引用它,而不必每次都重新编译 A。这通常是非常可取的,尤其是在团队或具有大型代码库的情况下。
请注意,要更改代码,您应该使用 -SNAPSHOT 工件。它们的处理方式略有不同。
您的依赖项总是下载到 .m2/repository 中。
如果您想对团队中下载的库有一些可预测性,您可以安装像 Nexus 这样的存储库管理器:https ://repository.apache.org/index.html#welcome
您的开发人员将从这个存储库管理器下载他们的依赖项,而不是从 Maven 中心下载依赖项。