有没有办法在POM文件中自动获取selenium-java版本更新到最新版本而无需手动更改?
我尝试创建一个selenium.version
变量,可以获取新的selenium更新但我的POM拒绝索引变量并显示为红色
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>${selenium.version}</version>
</dependency>
任何解决方法?
答案 0 :(得分:2)
如果要自动更新以下依赖项的<version>
属性:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.8.1</version>
</dependency>
您可以使用newVersion
的versions:update-property
内的Versions Maven Plugin
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>
答案 1 :(得分:2)
老实说,最好的方法是完全按照你的方式做,在pom.xml中定义${selenium.version}
的属性,如下所示:
<properties>
<selenium.version>3.8.1</selenium.version>
</properties>
maven的核心原则是可重复的构建。如果您没有为依赖项提供具体的版本号(即使是像selenium这样的测试依赖项),那么当发布新版本的selenium时,您可能会在一天内突然失败(或者出现其他一些不一致)的风险。
您最好将版本定义为3.8.1,如果将来您看到需要升级(版本3.9.x ...版本4.x ...),只需更改{{ 1}}并重建。
如果多个项目使用selenium,您可以将<property>
放在父pom中,并将它们全部定义为父级。
答案 2 :(得分:1)
如果您使用的是Maven 2,则可以使用最新或 RELEASE 的版本值。 最新是指特定工件的最新发布或快照版本,即特定存储库中最近部署的工件。 RELEASE 是指存储库中的最后一个非快照版本
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>LATEST</version>
</dependency>
但是,Maven 3.x不再支持在POM中使用这些metaversion。因此,用户需要使用具体版本替换这些metaversion的出现,因为存在由自动插件版本解析强加的不可重现的构建的威胁。