在 C# 中查找重复的代码

默认情况下,maven-pmd-plugin 仅支持 Java、JavaScript 和 JSP 语言。但是CPD 支持更多的语言,例如 C#。为了在您的构建中启用 C#,您需要配置几个部分:

  • 为 c# 添加额外的插件依赖项(pmd-cs 模块)
  • 选择语言cs
  • 配置包含过滤器以考虑*.cs(否则只会分析 java 文件)
  • 配置源码目录(默认只分析src/main/java
    <project>
      ...
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-pmd-plugin</artifactId>
            <version>3.16.0</version>
            <configuration>
              <language>cs</language>
              <minimumTokens>10</minimumTokens>
              <includes>
                <include>**/*.cs</include>
              </includes>
              <compileSourceRoots>
                <compileSourceRoot>${basedir}/src/main/cs</compileSourceRoot>
              </compileSourceRoots>
              <printFailingErrors>true</printFailingErrors>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>cpd-check</goal>
                </goals>
              </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>net.sourceforge.pmd</groupId>
                    <artifactId>pmd-cs</artifactId>
                    <version>6.42.0</version>
                </dependency>
            </dependencies>
          </plugin>
          ...
        </plugins>
      </build>
    </project>

    在此示例中,C# 源文件位于src/main/cs中。

    注意:net.sourceforge.pmd:pmd-cs的版本需要与正在使用的 PMD 版本相匹配。如果您在运行时升级 PMD,您需要确保在此处更改版本。