确保maven构建是独立的

时间:2013-11-18 14:55:57

标签: maven

在中型maven项目(> 40个模块)中,重构模块结构可以轻松地使构建引用不再存在的模块(例如,因为它们被重命名)。不幸的是,该项目仍将构建,因为它将自动从存储库中获取旧模块的(过时的)版本。但是,我希望构建立即失败。

是否有可能告诉maven,具有某个groupId的人工制品不应该总是在本地构建?

3 个答案:

答案 0 :(得分:2)

对于同样的问题,我有一个cron工作(或jenkins工作)每周清理一次本地回购。它不是一个完美的解决方案,因为构建将继续错误地构建(最坏情况)1周,直到它失败。

如果您想要更受控制的内容,可以将dependency:purge-local-repository添加为之前的目标,例如mvn dependency:purge-local-repository deploy。更多信息here

答案 1 :(得分:0)

解决此问题的首选方法是命令rm -Rf ~/.m2/repository

为了做到这一点,建议使用像Nexus vs Artifactory这样的内部存储库管理器。

答案 2 :(得分:0)

在多思考之后,似乎确保完整性的一种相当直接的方法是

  1. 运行完整版

    mvn clean install

  2. 删除本地存储库中的相关部分

    rm -rf ~/.m2/repository/DIR_FOR_MY_GROUPID

  3. 运行离线版本

    mvn -o clean install

  4. 如果我们依赖于给定groupId中不是同一构建产品的任何内容,则最后一步将失败。