Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven强制更新快照依赖项_Maven - Fatal编程技术网

Maven强制更新快照依赖项

Maven强制更新快照依赖项,maven,Maven,以下是mvn版本的结果: Apache Maven 3.0.4 (r1232337; 2012-01-17 00:44:56-0800) Maven home: /usr/share/maven Java version: 1.7.0_67, vendor: Oracle Corporation Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/jre Default locale: en_US,

以下是mvn版本的结果:

Apache Maven 3.0.4 (r1232337; 2012-01-17 00:44:56-0800)
Maven home: /usr/share/maven
Java version: 1.7.0_67, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.8.5", arch: "x86_64", family: "mac"
假设我有一个快照依赖项:

<dependency>
    <groupId>org.puzzled</groupId>
    <artifactId>foo</artifactId>
    <version>1.0.4-SNAPSHOT</version>
</dependency>
它应该只是(重新)下载所有依赖项。对吗?事实并非如此。它下载快照依赖项的元数据,推断(错误的是)不需要更新。我必须删除本地.m2存储库中的关联子目录,以便Maven从远程repo更新快照版本,即使使用-U标志也是如此

这是一个错误,还是我遗漏了什么

mvn clean install -U

-U表示强制更新依赖项。

存储库是否可能使用非唯一的快照名称发布您的
foo

这很好地解释了唯一和非唯一快照工件之间的区别

本质上,如果工件元数据在nexus上显示为
foo-1.0.4-SNAPSHOT.jar
,则它是非唯一的。如果它显示为
foo-1.0.4-20160122.172609-36.jar,则它是唯一的

您只能在Maven 3中发布唯一的快照工件,但仍然可以解析旧的时间戳非唯一快照。。。但这很不确定。看一下,在本地和远程机器上,文件系统日期和metadata.xml之间似乎存在一些不清楚和模糊的交互


基本上:(1)尝试确保快照依赖项是使用唯一的工件发布的,(2)如果不是,则不要依赖于检测到的新快照。使用
mvn依赖项:使用适当的包含项清除本地存储库
,以从本地m2中删除旧快照。

我在maven 3.0.3中从未遇到过这个问题,但在3.2.3中开始得到它,就像您描述的那样:-(只是为了检查,您可能至少要尝试复制本地.m2文件夹以保存到其他地方,并清除.m2目录。然后尝试运行新安装,看看它是否获取依赖项。这将只是检查以确保您的设置实际上正确,并且您正在使用正确的服务器查找工件,以防发生错误。)本地缓存所有依赖项。可能重复您所说的“我在本地repo中下载了该快照的副本”-在执行上一次干净安装时由maven下载?或手动下载?
mvn clean install -U