我用maven和wildfly制作了一个简单的EAR项目,但是我对过时的依赖项有一些问题。
项目结构如下:
Project
--EarProject
--BaseProject
--WarProject
--EjbProject
在父项目的pom中有依赖:
<dependency>
<groupId>org.wildfly.bom</groupId>
<artifactId>jboss-javaee-7.0-with-tools</artifactId>
<version>${version.jboss.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
在BaseProject的pom中我使用了Selenium:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-remote-driver</artifactId>
</dependency>
问题是在BaseProject Maven库中我看到旧版本的Selenium(即selenium-firefox-driver 2.40.0而不是更新的2.44.0),并且由于2.40.0中的错误,我的应用程序无法正常工作。 我试着添加:
<version>2.44.0</version>
在BaseProject的pom中,但是我收到了像
这样的警告覆盖selenium-remote-driver
的托管版本2.40.0
它不起作用。
如何从父pom覆盖依赖版本或从jboss-javaee-7.0-with-tools依赖项中排除selenium?
答案 0 :(得分:0)
如何从父亲的pom
覆盖依赖项的版本
&#34;覆盖托管版本2.40.0 for selenium-remote-driver&#34;警告只是一个m2e警告不 Maven警告。使用您的代码,您正确地覆盖了父pom的依赖版本。 See this bug at Eclipse site for m2e about this warning。您可以通过查看依赖关系树(在Eclipse中或使用mvn dependency:tree
命令)
或从jboss-javaee-7.0-with-tools依赖中排除selenium?
您可以使用exclusions
标记执行此操作。它是一个标记,您可以在其中指定要从Maven解析的传递依赖项中排除的每个groupId和artifactId。