我正在做一个依赖于X.X的项目,而X依赖于Y。
我过去常常在项目的pom中显式地包含Y。然而,它并没有被使用,为了让事情更清晰,我把它作为依赖项添加到了X的pom中。X被标记为发布依赖项。
问题是,在从我的项目的pom中删除Y并将其添加到X的pom之后,我的项目并没有在mvn -U clean package
上获得它。我知道-U更新快照,但不知道版本。
那么,在不删除~/.m2/repository目录的情况下,如何强制重新下载X的pom?此外,我尝试运行dependency:purge-local-repository
,但也不起作用。
发布于 2011-12-24 21:44:38
您不能使Maven重新下载依赖项,但您可以做的是清除使用mvn dependency:purge-local-repository
错误下载的依赖项
请参阅:http://maven.apache.org/plugins/maven-dependency-plugin/purge-local-repository-mojo.html
这将查找当前项目的所有传递依赖项的列表,删除它们,然后重新下载它们。如果你想在每次构建时都运行它,你甚至可以将它作为插件添加到你的pom中。
发布于 2013-08-14 05:31:45
我刚刚删除了我的~/.m2/仓库,这迫使我重新下载;)
发布于 2016-05-17 16:10:40
基于阿里托克曼的答案。我设法用以下命令强制删除了一个特定的本地依赖项:
mvn dependency:purge-local-repository -DmanualInclude=com.skyfish:utils
这样,它就从我的.m2/仓库中删除了utils
,并且当我继续运行mvn clean install
时,它总是重新下载utils
JAR依赖项。如果您想要更具编程性的东西,也可以看看-Dinclude=...
选项。
https://stackoverflow.com/questions/7959499
复制相似问题