我有一個單元測試項目。我正在使用Maven和m2e。使用Maven在命令行中,我看到:如何擺脫org.hamcrest.core_1.1.0.v20090501071000.jar?
[INFO] | +- org.springframework:spring-test:jar:3.1.3.RELEASE:test
[INFO] | \- junit:junit-dep:jar:4.10:test
[INFO] +- org.mockito:mockito-core:jar:1.9.0:test
[INFO] | +- org.hamcrest:hamcrest-core:jar:1.2.1:test
[INFO] | \- org.objenesis:objenesis:jar:1.0:test
mvn install
作品,所有的測試運行。好。
現在我試着在Eclipse中使用M2E 1.2.0運行單元測試,我得到這個錯誤:
java.lang.SecurityException: class "org.hamcrest.DiagnosingMatcher"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:806)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:487)
...
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
這令我費解。 m2e中的依賴關係樹看起來不錯。但是,當我打開進程的屬性,我收到了修改classpath中包含這些額外的條目:
.../eclipse/3.7.2/eclipse/plugins/org.junit_4.8.2.v4_8_2_v20110321-1705/junit.jar
.../eclipse/plugins/org.hamcrest.core_1.1.0.v20090501071000.jar
由於這些JAR簽署,測試失敗。我怎樣才能擺脫這兩個條目?或者我怎樣才能確保它們在類路徑中遲到(即在我的JUnit + Hamcrest版本之後)?
1. JUnit是不上Java Build Path。2.我正在使用'junit-dep',它不包含任何Hamcrest類。問題是jdt Junit啓動程序似乎將JUnit和Hamcrest添加到類路徑(以及舊版本),但我不知道如何防止這種情況。 –