如何在POM中自动更新selenium版本?

有没有办法在POM文件中自动获取selenium-java版本更新到最新版本,而无需手动更改它?

我尝试创建一个selenium.version变量,可以获取新的selenium更新,但我的POM拒绝索引变量,它显示为红色

  org.seleniumhq.selenium selenium-java ${selenium.version}  

任何解决方法?

如果要自动更新以下依赖项的属性:

  org.seleniumhq.selenium selenium-java 3.8.1  

您可以在Versions Maven Plugin versions:update-property中使用newVersion parameter ,如下所示:

  • 版本1.0(包含)到2.0(不包括):

      org.seleniumhq.selenium selenium-java [1.0,2.0)  
  • 版本1.0到2.0(包括两者):

      org.seleniumhq.selenium selenium-java [1.0,2.0]  
  • 1.5及更高版本:

      org.seleniumhq.selenium selenium-java [1.5,)  
  • 最高1.0(包括)和1.2或更高的版本:

      org.seleniumhq.selenium selenium-java (,1.0],[1.2,)  
  • 要使用的版本:

      org.seleniumhq.selenium selenium-java -DnewVersion=[3.8.0]  

老实说,最好的方法是完全按照你的方式做,在你的pom.xml中定义${selenium.version}的属性,如下所示:

  3.8.1  

maven的核心原则是可重复的构建。 如果您没有为依赖项提供具体的版本号(即使是像selenium这样的测试依赖项),那么当发布新版本的selenium时,您可能会在一天内突然失败(或者出现其他一些不一致)。

您最好将版本定义为3.8.1,如果将来您看到需要升级(版本3.9.x …版本4.x …),只需更改并重建。

如果多个项目使用selenium,您可以将放在父pom中,它们都定义为父pom。

如果您使用的是Maven 2,则可以使用LATESTRELEASE的版本值。 LATEST是指特定工件的最新发布或快照版本,即特定存储库中最近部署的工件。 RELEASE是指存储库中的最后一个非快照版本

   org.seleniumhq.selenium selenium-java LATEST  

但是,Maven 3.x不再支持在POM中使用这些metaversion。 因此,用户将需要用具体版本替换这些metaversion的出现,因为存在由自动插件版本解析强加的不可重现的构建的威胁。

https://cwiki.apache.org/confluence/display/MAVEN/Maven+3.x+Compatibility+Notes#Maven3.xCompatibilityNotes-AutomaticPluginVersionResolution