2016-06-10 116 views
1

我宣佈我的java8 defult方法聲明接口:cobertura maven插件不能在接口中使用java8默認方法聲明嗎?

public interface MyInterface { 

    default String myMethod(String str) { 
     //IMPLEMENTATION 
    } 
} 

接下來,我執行Maven的目標:

mvn cobertura:cobertura 

日誌顯示錯誤,因爲的Cobertura不支持java8默認方法聲明:

[INFO] Executed tasks 
[INFO] 
[INFO] <<< cobertura-maven-plugin:2.7:cobertura (default-cli) < [cobertura]test @ extractor <<< 
[INFO] 
[INFO] --- cobertura-maven-plugin:2.7:cobertura (default-cli) @ extractor --- 
[INFO] Cobertura 2.1.1 - GNU GPL License (NO WARRANTY) - See COPYRIGHT file 
[INFO] Cobertura: Loaded information on 134 classes. 
[WARN] JavaNCSS got an error while parsing the java file <PATH_TO_MY_INTERFACE>\MyInterface.java 
ParseException in STDIN 
Last useful checkpoint: "path.to.my.class.MyInterface" 
Encountered " "default" "default "" at line 10, column 9. 
Was expecting one of: 
    "abstract" ... 
    "boolean" ... 
    "byte" ... 
    "char" ... 
    "class" ... 
    "double" ... 
    "enum" ... 
    "final" ... 
    "float" ... 
    "int" ... 
    "interface" ... 
    "long" ... 
    "native" ... 
    "private" ... 
    "protected" ... 
    "public" ... 
    "short" ... 
    "static" ... 
    "strictfp" ... 
    "synchronized" ... 
    "transient" ... 
    "void" ... 
    "volatile" ... 
    <IDENTIFIER> ... 
    "}" ... 
    ";" ... 
    "@" ... 
    "<" ... 

我該如何解決?

+0

顯然,有對Java 8 changelog的要求與2.1.1支持沒有(真正)的支持,但也有很多的開放性問題和線程報告問題... – Holger

+0

我會建議使用JaCoCo代替cobertura導致儀器不再需要,因爲Java 6 .... – khmarbaise

+0

好的khmarbaise,我會嘗試JaCoCo! –

回答