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上找到。