【问题标题】:Purge local maven repo of all SNAPSHOT dependencies清除所有 SNAPSHOT 依赖项的本地 maven 存储库
【发布时间】:2014-05-31 18:57:59
【问题描述】:

我所处的环境可以将同名 jar 文件的多个版本发布到本地 Nexus 安装。这些 jar 文件始终命名为 XYZ-SNAPSHOT.jar。我们的持续集成系统需要始终拉取最新版本,因此我们的自动化构建目前包含以下内容,以清除持续集成机器上的完整本地 repo:

mvn 依赖:purge-local-repository

这会强制在每次构建时下载所有依赖项,这会花费很长时间。有什么方法可以将“包含”标志与通配符一起使用。我假设的东西看起来像这样:

mvn 依赖:purge-local-repository -includes="*-SNAPSHOT.jar"

如果具有必要的灵活性,添加新的 mvn 目标也是可以接受的。

【问题讨论】:

    标签: java maven


    【解决方案1】:

    Yes there is this flexibility available to filter dependencies 也转至specify just SNAPSHOTS

    试试

    mvn dependency:purge-local-repository -DmanualInclude="com.abc:artifact-id" -DsnapshotsOnly=true
    

    【讨论】:

    • 理想情况下,如果您正在使用的东西经常变化并且不在您的 maven pom 树中,那么您应该依赖于发布,@kdg 真实故事
    • 'includes' 和 'include' 都不适合我('includes' 看起来只用于 pom.xml,而不是 CLI)。但是,使用“manualInclude”确实有效。
    • @Peter 好的,谢谢,我用那个选项更新了答案
    • 其他人能否验证这确实适用于在本地存储库中具有 both 版本和快照的工件?我已经尝试了目标参数的所有各种组合,但它仍然会清除所有版本,而不仅仅是快照。
    • 啊,所以这在文档中不是很清楚,但是 snapshotsOnly 参数是“让我清除依赖项......但是等等,让我们只看一下那些目前在快照版本”,而不是“让我清除所有依赖项,但只清除快照”。这是一个重要的区别。
    猜你喜欢
    • 2014-06-18
    • 2014-03-01
    • 2013-10-19
    • 2012-02-03
    • 2020-07-13
    • 1970-01-01
    • 2016-11-13
    • 1970-01-01
    • 2011-04-10
    相关资源
    最近更新 更多