就 Maven 而言,从你的战争覆盖生成的工件将只是另一个工件。
如果我在 CI 服务器部署它之后立即进行 mvn 编译,我的构建会得到我的本地更改还是 CI 更改?
这将取决于设置文件中的快照 updatePolicy。默认情况下设置为每天。更多细节在这里:http ://maven.apache.org/settings.html#Repositories
如何强制我的项目使用我在本地更改的战争覆盖?
将快照 updatePolicy 更改为从不(或 -o 选项,由 @matsev 建议)。这意味着您使用的 SNAPSHOT 依赖项将始终是本地版本。要使用此 updatePolicy强制从存储库中获取最新版本,请使用 -U 选项。
我认为安装可以做到这一点,但如果 CI 服务器构建具有更新时间戳的版本怎么办。它会使用哪一个?
是的,安装基本上会将您的工件部署到您的本地存储库(.m2 文件夹)。然后,根据 updatePolicy,maven 将比较本地部署的工件和存储库工件。如果 updatePolicy 设置为always ,如果它具有较新的时间戳,maven 将始终获取存储库之一。每天也是如此,除了 maven 只会每天比较时间戳。
我在 maven 文档上找不到权威的答案。
完全同意。可悲的是,我部分通过经验了解其中的大部分内容。