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_Dependencies - Fatal编程技术网

如何使用来自远程存储库的较新构件更新maven本地存储库?

如何使用来自远程存储库的较新构件更新maven本地存储库?,maven,dependencies,Maven,Dependencies,我的maven模块A依赖于其他人提供的另一个maven模块B。当我第一次在A下运行“mvn安装”时,maven将B-1.0.jar从远程存储库下载到本地maven存储库。我的模块A构建得很好 与此同时,其他人正在将更新的B-1.0.jar部署到远程存储库。当我再次在A下运行“mvn安装”时,maven不会将较新的B-1.0.jar从远程存储库下载到本地存储库。结果,由于B-1.0.jar中的API更改,我的模块a构建失败 我可以手动从本地存储库中删除B-1.0.jar。然后,下次我运行“mvn安

我的maven模块A依赖于其他人提供的另一个maven模块B。当我第一次在A下运行“mvn安装”时,maven将B-1.0.jar从远程存储库下载到本地maven存储库。我的模块A构建得很好

与此同时,其他人正在将更新的B-1.0.jar部署到远程存储库。当我再次在A下运行“mvn安装”时,maven不会将较新的B-1.0.jar从远程存储库下载到本地存储库。结果,由于B-1.0.jar中的API更改,我的模块a构建失败

我可以手动从本地存储库中删除B-1.0.jar。然后,下次我运行“mvn安装”时,maven将从远程存储库下载最新的B-1.0.jar


我的问题是如何自动让maven从远程存储库下载最新的工件。我试图将updatePolicy设置为“始终”。但这并没有起作用。

Maven从不重新下载版本-1.0被视为最终版本,新版本应使用新版本


如果模块B仍在开发中,您应该使用版本1.0-SNAPSHOT-SNAPSHOT是一个特殊的Maven版本,它将检查更新,并且在部署时与时间戳和内部版本号一起存储以进行跟踪。

我同意上面Brett的观点:新版本应该使用新版本。对于您的情况,快照可能是最好的解决方案,但使用其他可能也很有用的方法

因此,您可以指定
(1.0,)

声明您接受任何大于1.0的版本。

[1.1.1,1.1.7]

接受(包括)版本1.1.1和1.1.7之间的任何内容。
符号遵循标准的数学间隔语法,其中

[=包含在间隔中
(=从间隔中排除

(在学校,我一直认为方括号是“保持”该元素,而较软的括号是“放手”)


如果依赖项仍在频繁开发中,并且您不想依赖可能不太稳定且更可能破坏代码的新快照,则此功能非常有用。您可以指定安全范围,并根据需要随时间向上或向下调整边界

此功能非常有用。快照仅适用于此用途rpose.感谢Brett的回答:)有没有办法排除所有具有该范围定义的较新快照?例如,我不喜欢1.1-SNAPSHOT