注意:我已經提交了官方JIRA對於這個http://jira.codehaus.org/browse/MNG-5603,因爲我非常確定它是一個在maven中的bug。這個線程的答案我將在兩個地方評估和更新,因爲我非常肯定其他人會在複雜的代碼庫上執行排除過濾器時遇到此問題。maven surefire排除:它是越野車嗎?
我的完整pom文件僅供參考:https://gist.github.com/jayunit100/9644221(這是im源代碼中使用的hadoop版本)。
香港專業教育學院發現,在萬無一失的一些非常奇怪的行爲:
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<startKdc>${startKdc}</startKdc>
<kdc.resource.dir>${kdc.resource.dir}</kdc.resource.dir>
</systemPropertyVariables>
<properties>
<property>
<name>listener</name>
<value>org.apache.hadoop.test.TimedOutTestsListener</value>
</property>
</properties>
<excludes>
<exclude>asbdfoin</exclude>
</excludes>
</configuration>
導致異常這樣的:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.16:test
(default-test) on project hadoop-common: Execution default-test of goal
org.apache.maven.plugins:maven-surefire-plugin:2.16:test failed:
java.lang.NoClassDefFoundError: EmptyRequestProto; nested exception is
java.lang.NoClassDefFoundError: EmptyRequestProto -> [Help 1]
的 「排除」 標籤下
mvn test
用下面的排除過濾器
換言之:排除過濾器可能會導致NoClassDefFoundError消息,當排除過濾器根本不匹配任何東西。
我的問題:maven surefire排除過濾器如何導致ClassNotFound錯誤顯示?如果有的話,我會期望它減少加載類的嘗試次數,而不是增加它們。
僅供參考,在此點顏色:類本身是一個內部類:
public static final class EmptyRequestProto extends com.google.protobuf.GeneratedMessage
我見過https://jira.codehaus.org/browse/SUREFIRE-988,可能與其相關的,但是我的事實,我的「排除」過濾器犯規匹配任何代碼庫中的類,它可能是不同的。
請顯示您的完整pom文件。 – khmarbaise