2012-06-19 86 views

回答

1

你是否包含這個Gradle script?我認爲你可以在工具定義中排除類(參見下面的示例)。但是,它看起來不像可以通過使用約定屬性來設置排除模式。

ant.emma(enabled: 'true', verbosity:'info'){ 
    instr(merge:"true", destdir: emmaInstDir.absolutePath, instrpathref:"run.classpath", 
      metadatafile: new File(emmaInstDir, '/metadata.emma').absolutePath) { 
     instrpath { 
      fileset(dir:sourceSets.main.output.classesDir.absolutePath, includes:"**/*.class", excludes:"**/Some*.class") 
     } 
    } 
} 

如果我是你,我會試着用叉子叉插件,新的字段添加到EmmaPluginConvention,可以讓你設定的排除模式,然後使用該變量在instrpath定義。在更改代碼並驗證其有效後,向作者發送拉取請求。我相信他會納入你的改變。

+1

你是對的。我忘了EMMA插件不是Gradle的官方插件。 – tobiasbayer

0

這不適用於gradle 1.5。艾瑪需要一個過濾器,像這樣:

ant.emma(enabled: 'true', verbosity: $verbosityLevel) { 
     instr(merge: "true", destdir: emmaInstDir.absolutePath, instrpathref: "run.classpath", 
       metadatafile: new File(emmaInstDir, '/metadata.emma').absolutePath, filter: "-com.someclass.*") { 
      instrpath { 
       fileset(dir: sourceSets.main.output.classesDir.absolutePath, includes: "**/*.class") 
      } 
     } 
    } 

過濾遵循該網頁上的定義: http://emma.sourceforge.net/reference/ch02s06s02.html

相關問題