这听起来应该很容易,但我还没有找到答案。如果我使用mvn install安装工件,我该如何删除所述工件?我尝试使用依赖:purge-local-repository,但它只删除依赖项 - 而不是实际的工件。
有什么想法吗?如果有帮助,我正在使用maven 2.2.1。
编辑:我知道类似的问题,但我对删除整个.m2 repo只是为了删除单个SNAPSHOT依赖关系的答案不满意。另外,正如我所提到的,purge-local-repository不起作用,因为它似乎只是删除了依赖项,而不是实际的工件。
编辑2:我可能不太清楚。考虑这个例子。我有一个名为my-artifact的SNAPSHOT工件。 my-artifact有两个依赖项:my-dependency-one和my-dependency-two。我想写一个脚本,删除所有三个,而不必解析pom.xml文件。换句话说,我想清除my-dependency-one,my-dependency-two和 my-artifact ,而不必显式输入我要删除my-artifact的maven。 / p>
在“重复问题”的答案中,它建议进入并手动删除.m2仓库中的工件。这不是这个问题的答案,因为脚本在执行maven命令时不知道组或工件名称。我想要一些类似于依赖的东西:purge-local-repository,除了它不仅要删除依赖项,还要删除工件本身。
我猜测基于评论中的混淆,这是不可能的。如果不是那个是可以接受的答案。
答案 0 :(得分:5)
这是一种似乎有用的方式(虽然有点笨拙)。
这将删除项目的所有依赖项:
mvn dependency:purge-local-repository -DreResolve=false
这将删除主要工件本身:
mvn dependency:purge-local-repository -DmanualInclude=${project.groupId}:${project.artifactId}:${project.version}
需要两个步骤,因为
<强> manualIncludes:强>
groupId:artifactId 形式的依赖项列表,应从本地存储库中删除/清除。请注意,使用此参数将取消激活清除当前项目依赖关系树的正常过程。如果使用此参数,则仅清除包含的工件。 manualIncludes 参数不应与包含/排除参数结合使用。