<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>LATEST</version>
</dependency>
一般而言,您不想这样做。 如果新版本中有破坏性的变化或错误,您将卡住确定问题的位置。
maven有两种解决这个问题的方法。 第一个是:mvn versions:display-dependency-updates
[INFO] The following dependencies in Dependencies have newer versions:
[INFO] com.fasterxml.jackson.core:jackson-databind ......... 2.9.10 -> 2.13.3
[INFO] com.google.code.gson:gson ............................. 2.8.6 -> 2.9.0
[INFO] com.jayway.jsonpath:json-path ......................... 2.5.0 -> 2.7.0
[INFO] commons-io:commons-io ................................ 2.8.0 -> 2.11.0
这向我展示了我需要查看更新的地方。 没有什么可以自动更新的 - 这是您需要手工生成的报告。
第二种方法可能更接近您想要的东西。 Maven可以使用您愿意使用的版本。 作为一个非常一般性的语句,如果您至少不超出主要版本,则大多数库库仍然兼容。 并非总是如此,但是您可以为自己决定这一点。在您的情况下,您可以将依赖性更改为:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>[4.3,5.0)</version>
</dependency>
这告诉Maven使用最小版4.3.0版,但不使用版本5.0及更高版本。 如果4.3.1出现,它将自动使用它。 它不会使用5.0及以上的任何东西。如果您真的要永远保持升级,那么您会将其更改为:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>[4.3,)</version>
</dependency>
刚刚说的是4.3.0及以上版本。 如果版本5.0出现,它将使用此功能。 零保证版本5.0是兼容的-Maven将盲目地开始使用它。
PluginMetaversion分辨率 您正在使用Maven2.x,它可以选择最新版本的最新版本,其中最新版本可能是发行版或快照。内部,maven2.x
使用特殊版本标记RELEASE
LATEST
支持自动插件版本分辨率。
例如一个例子:RELEASE
:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>RELEASE</version>
</dependency>
LATEST
:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>LATEST</version>
</dependency>
amaven3.x不再支持对POM中这些元反应的使用。结果,用户将需要用混凝土版本替换这些元元的发生。
参考 您可以在以下方式找到一些相关的详细讨论: