在命令行帮助中,我看到maven“检查”了更新:
-U,--update-snapshots Forces a check for updated
releases and snapshots on remote
repositories
但是,有关堆栈溢出的大多数问题都暗示此选项会强制Maven更新。这是否意味着它会强制重新下载依赖项?
例如https://stackoverflow.com/a/9697970/1119779
最佳答案
如果您不使用-U
,则maven可能会缓存结果-即使找不到依赖项(例如,由于您的联系[或类似名称]不可用,配置错误,不包含依赖项[尚未]或其他)。
如果是这样的话。 Maven遵循存储库的updatePolicy
,它告诉它maven多久(如果有的话)检查依赖项是否已更新。默认值为daily
,因此,如果临时错误导致maven不下载依赖项,则可能需要一天时间才能再次尝试。 -U
覆盖它,并告诉它立即检查。
如果已下载-U
依赖项,并且校验和相同,则不会重新下载该依赖项!它仅检查校验和。
更新:如@Stas所指出的,如果校验和不同,它将重新下载并用来自远程存储库的本地JAR覆盖您的本地JAR。
顺便说一句:Maven使用与依赖项+ ".lastUpdated"
同名的时间戳文件来了解何时在哪个服务器上最后一次检查了依赖项。例如。 ~/.m2/repository/org/springframework/spring-webmvc/3.1.2.RELEASE/spring-webmvc-3.1.2.RELEASE.jar.lastUpdated
updatePolicy的示例:
<repositories>
<repository>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
<!-- ... -->
</repository>
<!-- ... -->
</repositories>
有关updatePolicy的更多信息,请参见http://maven.apache.org/pom.html#Repositories。
关于maven - 专家:`-U,-update-snapshots`到底做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29020716/