我正在构建一个依赖于库的Java项目。 mvn.bat clean install
按预期生成了target
个子目录,并且该项目也可以使用mvn.bat clean install
生成。
当我删除整个库的目录时,外部项目仍然很好,虽然它所依赖的库已经不存在了。
这是如何运作的?
更新:原来,Maven在%USERPROFILE\.m2
中制作了某种缓存。
答案 0 :(得分:4)
您很可能会考虑本地存储库,其中您在本地安装的所有内容(以及来自中央存储库的maven下载)都会放在以后使用。
您描述的行为是有意的,并且允许构建A一次,然后让B在需要时引用它,而不必每次都重新编译A.这通常是非常理想的,特别是在团队或代码库中。
注意,对于更改代码,您应该使用-SNAPSHOT工件。它们的处理方式略有不同。
答案 1 :(得分:3)
您的依赖项始终下载到.m2 / repository。
如果您希望对团队中下载的库有一定的可预测性,您可以设置像Nexus这样的存储库管理器:https://repository.apache.org/index.html#welcome
您的开发人员不会从Maven中心下载依赖项,而是从此存储库管理器下载其依赖项。