0
摘錄從我的項目的依賴關係樹:曖昧Maven的依賴性打破硒
myproject
+- qxwebdriver-java 0.0.3
+- operadriver 1.5
| +- guava 14.0
+- selenium-java 2.52.0
+- selenium-remote-driver 2.52.0
| +- guava
+- selenium-safari-driver 2.52.0
番石榴需要兩次,通過operadriver
和selenium-remote-driver
。在後一種情況下,聲明不依賴版本。該項目本身只需要qxwebdriver-java
,除此之外別無其他。
在這種配置中,Safari瀏覽器驅動程序不起作用:
java.lang.NoSuchMethodError: com.google.common.base.Stopwatch.createStarted()Lcom/google/common/base/Stopwatch;
at org.openqa.selenium.safari.SafariDriverCommandExecutor.start(SafariDriverCommandExecutor.java:111)
這是因爲該項目對番石榴總撫養解析爲14.0(通過operadriver
)。然而,所需的Stopwatch::createStarted()
方法已經在Guava 19.0中引入。將Guava 19.0依賴項手動添加到項目的POM可解決此問題。
但這不是Selenium和/或Opera驅動程序打包的問題嗎?你認爲應該向上游報告還是我的解決方法是在Maven中做這樣的事情的正確方法?
我的理解是否正確,在我們的情況下,添加這樣的排除應該(理想情況下)是'qxwebdriver-java'維護者的責任? – Dimitri
@Avishai從您描述的依賴關係層次結構中,應該在qxwebdriver-java的pom中完成。另外:我簡要看了一下https://github.com/qooxdoo/qxwebdriver-java/blob/master/pom.xml,在那裏我看到了selenium-java:2.45.0和operadriver:1.1。所以我不確定你從哪裏得到你的版本。 – SiKing
最初的qxwebdriver-java repo是有點過時的,所以我擺弄叉意圖更新依賴到最新版本。現在一切正常,謝謝你的提示! – Dimitri