【问题标题】:How to automatically update selenium version in POM?如何在 POM 中自动更新 selenium 版本?
【发布时间】:2018-01-21 11:37:54
【问题描述】:
有没有办法在POM文件中自动获取selenium-java版本更新到最新,而无需手动更改?
我尝试创建一个selenium.version 变量,该变量可以获取硒的新更新,但我的 POM 拒绝索引该变量并显示为红色
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>${selenium.version}</version>
</dependency>
有什么解决方法吗?
【问题讨论】:
标签:
java
maven
selenium-webdriver
intellij-idea
【解决方案1】:
老实说,最好的方法是完全按照您的做法,在 pom.xml 中定义 ${selenium.version} 的属性,如下所示:
<properties>
<selenium.version>3.8.1</selenium.version>
</properties>
maven 的核心原则是可重复构建。如果您没有为您的依赖项(甚至是像 selenium 这样的测试依赖项)提供具体的版本号,那么当新版本的 selenium 发布时,您的项目构建可能会突然失败(或出现其他一些不一致)。
您最好将版本定义为 3.8.1,如果将来您需要升级(版本 3.9.x... 版本 4.x...),只需更改 <property> 和重建。
如果多个项目使用 selenium,您可以将 <property> 放在他们都定义为父级的父级 pom 中。
【解决方案2】:
如果你想自动更新以下依赖的<version>属性:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.8.1</version>
</dependency>
您可以在Versions Maven Plugin 的versions:update-property 中使用newVersion parameter,如下所示:
-
版本 1.0(包括)到 2.0(不包括):
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>[1.0,2.0)</version>
</dependency>
-
版本 1.0 到 2.0(均包括在内):
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>[1.0,2.0]</version>
</dependency>
-
1.5 及更高版本:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>[1.5,)</version>
</dependency>
-
最高版本 1.0(包括在内)和 1.2 或更高版本:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>(,1.0],[1.2,)</version>
</dependency>
-
要准确使用的版本:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>-DnewVersion=[3.8.0]</version>
</dependency>