sbt cpd
v2.0.0
這是使用PMD項目的複制/粘貼檢測器(CPD)進行重複代碼檢測的SBT插件。
通過將以下內容添加到project/plugins.sbt :安裝插件:
addSbtPlugin( " com.github.sbt " % " sbt-cpd " % " <version> " )然後使用sbt cpd執行插件。這將在src/main/scala下掃描您的源代碼,並輸出包含重複項target/scala-2.xx/cpd/cpd.xml報告。
(另請參見CPD文檔)
| 鑰匙 | 類型 | 預設 | 描述 |
|---|---|---|---|
cpdReportType | CpdReportType | CpdReportType.XML | 選擇CPD報告的輸出格式。有效類型: XML , Simple , CSV & VS |
cpdLanguage | CpdLanguage | CpdLanguage.Scala | 語言要分析。 1 |
cpdMaxMemoryInMB | 整數 | 512 | 最大內存量以允許CPD(在MB中)。 |
cpdMinimumTokens | 整數 | 100 | 潛在重複項的最小令牌數量。 |
cpdSourceEncoding | 細繩 | utf-8 | 源文件編碼。 |
cpdSourceDirectories | Seq (路徑) | 主要源路徑 | 源文件要分析的路徑。 |
cpdOutputType | CpdOutputType | CpdOutputType.File | 選擇CPD報告的輸出類型。 2種有效類型: File , Console |
cpdTargetPath | 文件路徑 | <cross-target>/cpd | CPD報告的輸出路徑。 |
cpdReportName | 字符串(文件名) | cpd.xml | 報表文件的名稱要生成(在cpdTargetPath下)。 |
cpdReportFileEncoding | 細繩 | utf-8 | 報告文件編碼。 |
cpdSkipDuplicateFiles | 布爾 | false | 相比之下,請忽略多個同名文件和長度的文件副本。 |
cpdSkipLexicalErrors | 布爾 | false | 由於字符無效而不是流產,因此跳過無法引起象徵性的文件。 |
cpdIgnoreLiterals | 布爾 | false | 評估重複塊時忽略字面價值差異。 |
cpdIgnoreIdentifiers | 布爾 | false | 評估重複塊時忽略標識符名稱差異。 |
cpdIgnoreAnnotations | 布爾 | false | 評估重複塊時忽略語言註釋。 |
cpdFailOnDuplicates | 布爾 | false | 如果檢測到重複項,則失敗構建。 |
ScalaJavaCCPPCSCSharpECMAScriptFortranGoJSPJavaScriptMatlabObjectiveCPHPPLSQRubySwiftCpdOutputType.Console ,則忽略cpdTargetPath和cpdReportName 。 非常感謝
為了他們的出色貢獻!
該程序和隨附的材料可根據Eclipse公共許可證v1.0的條款提供,該條款隨附該分發,可在http://www.eclipse.org/legal/legal/epl-v10.html上找到。