我有兩個依賴關係指向衝突版本javax.validation:validation-api
。爲了解決這個問題,我在validation-api
的最新版本中增加了一個dependencyManagement
部分。在測試時忽略Maven依賴關係管理(在運行時工作)
雖然這會導致應用程序構建正確,並且應用程序在運行時工作,但在測試期間,構建會在引用驗證API的行中斷開(通過@Valid
註釋)。
的依賴性衝突是:
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-core</artifactId>
<version>0.9.2</version>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-user</artifactId>
<version>2.8.0-beta1</version>
<scope>provided</scope>
</dependency>
我已經添加了以下dependencyManagement
:
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
這個工程在運行時和編譯時間,但在我指@Valid
測試失敗。
將不勝感激任何幫助,因爲這是讓我瘋了。
感謝。我認爲你正在考慮正確的路線。但是,我已經嘗試過排除,然後再次嘗試 - 錯誤不會消失。它繼續出現在測試中,而運行時繼續工作。所以它在測試中不會消失。 –
這是運行依賴關係樹的輸出:[INFO] com.myproject:jar:1.0-SNAPSHOT [INFO] \ - io.dropwizard:dropwizard-validation:jar:0.9.2:compile [INFO] \ - org.hibernate:hibernate-validator:jar:5.2.2.Final:compile [INFO] \ -javax.validation:validation-api:jar:1.1.0.Final:compile' –
讓事情更加一致,你可以嘗試應用提供給dependencyManagement條目的作用域,然後刪除剛剛添加的隱式排除。然後,您可能會在運行時遇到同樣的錯誤:雖然一開始這並不好,但它可以進一步幫助您找到正確的解決方案。 –