标签: pmd

如何让 maven-pmd-plugin 支持最新的 PMD 版本?

http://maven.apache.org/plugins/maven-pmd-plugin/目前是 2.4 版,支持 PMD 4.2.2 版

是否可以将 PMD 版本 4.2.5 与此插件一起使用,如果可以,我们该怎么做?

maven-2 pmd

5
推荐指数
1
解决办法
1368
查看次数

java中符合PMD的流复制

我有一段用于流复制的代码。

OutputStream os = ...;
InputStream is = ...;
int bufferLength;
byte[] buffer = new byte[1024];
while ((bufferLength = is.read(buffer)) != -1) {
   os.write(buffer, 0, bufferLength);
}
Run Code Online (Sandbox Code Playgroud)

如果我在它上面运行 PMD,我会收到以下警告http://pmd.sourceforge.net/rules/controversial.html#AssignmentInOperand

现在我希望摆脱那个警告,但我能想到的唯一选择是

OutputStream os = ...;
InputStream is = ...;
int bufferLength;
byte[] buffer = new byte[1024];
bufferLength = is.read(buffer);
while (bufferLength != -1) {
   os.write(buffer, 0, bufferLength);
   bufferLength = is.read(buffer);
}
Run Code Online (Sandbox Code Playgroud)

我真的不喜欢那样,因为我最终会复制代码。有没有更优雅的方式来满足这个 PMD 规则?

java pmd while-loop

5
推荐指数
1
解决办法
1878
查看次数

如何在Eclipse中使用PMD Ant从文件夹运行所有规则集?

我试图运行PMD来自AntEclipse当我生成项目.

这是我的build.xml文件:

<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"/>

<target name="check_pmd">
    <pmd rulesetfiles="C:\Users\Nikolay\ProjectName\lib\rulesets\java\basic.xml">
        <formatter type="html" toFile="pmd_report.html" toConsole="true"/>
        <fileset dir="C:\Users\Nikolay\ProjectName\src">
            <include name="**/*.java"/>
        </fileset>
    </pmd>
</target>
Run Code Online (Sandbox Code Playgroud)

它运行良好basic.xml,但我想运行java文件夹中的所有规则集(它有大约20个规则集)所以我尝试过:

<pmd rulesetfiles="C:\Users\Nikolay\ProjectName\lib\rulesets\java\*.xml">
<pmd rulesetfiles="C:\Users\Nikolay\ProjectName\lib\rulesets\java\*">
Run Code Online (Sandbox Code Playgroud)

但是当我试图跑步时,他们都失败了.有没有办法指定文件夹,而不是手动指定文件列表的单个文件?

为了让未来的读者在Eclipse下配置Ant PMD:

  • pmd-bin.zip从官方网站下载
  • 打开包装pmd.jar,jaxen.jar然后asm.jar
  • 将上面的jar添加到Window - Preferences - Ant - Runtime - Ant Home Entries - 添加外部JAR
  • 解压rulesets文件夹
  • 规则集的引用位置 <pmd rulesetfiles=...>

java eclipse ant pmd

5
推荐指数
1
解决办法
3760
查看次数

导入PMD Eclipse的规则

我正在为一个类安装Eclipse Juno for Java Developers,我们已经被要求安装PMD插件.我们有自己的xml文件和规则,我们必须替换插件的默认规则.当我浏览并选择文件时,导入工具不允许我按"确定".

有什么建议?我对这些东西很新.

eclipse pmd

5
推荐指数
2
解决办法
2万
查看次数

@SuppressWarnings不止一条规则无效

PMD和SonarQube是一个不错的工具,但我在尝试抑制PMD警告方面遇到了问题.

我们在项目中经常使用Lombok,因此许多模型类都有:@SuppressWarnings("PMD.UnusedPrivateField")作为类级别的注释.

这很好用.

问题是,如果我不想再忽略一条规则,我会期望以下语法:@SuppressWarnings(value = {"PMD.UnusedPrivateField","PMD.SingularField"})这看起来像正确的语法,也是阅读PMD注释的实现.

但是,这似乎不起作用:现在没有规则被禁止.

pmd sonarqube

5
推荐指数
1
解决办法
7124
查看次数

PMD CPD排除equals和hashcode等方法?

我找不到如何告诉PMD-CPD跳过特定方法的选项.我们使用生成equals()hashCode()方法,因此这些方法看起来非常相似,并且CPD将很多方法报告为重复代码.

我可以//NOPMD在代码中使用一些注释,但在我看来,如何管理我的代码并不是什么方法.因为我在代码中加入了一个与代码无关的工具.CPD有助于避免编码错误/样式,不应强迫我修改我的代码.

如果有人有一些想法如何解决它,那将会非常有用.

最好的祝愿

java pmd cpd

5
推荐指数
1
解决办法
1910
查看次数

来自 PMD、checkstyle、findbugs 的报告

我的应用程序(在 Gradle 中)中有一些模块(项目和子项目),并且我添加了插件:PMD、checkstyle、findbugs。这些插件在它们的目录中创建自己的报告(例如:PMD 在目录“reports”中创建目录“PMD”并将报告放在那里)。我想要一份关于所有这些插件的报告。有可能这样做吗?如果是,那该怎么做?

java findbugs checkstyle pmd gradle

5
推荐指数
1
解决办法
646
查看次数

所有 REST @GET 方法的 PMD 违规SuppressXPath?

我正在尝试缩小 PMD 规则的范围,如何从 PMD 检查中排除所有用 @GET 注释的 REST 方法?

pmd

5
推荐指数
2
解决办法
1876
查看次数

如何避免此 PMD 错误 - 字符串文字“TEST”在此文件中出现 X 次;

如何避免 Java 代码中的 PMD 错误?

public enum testEnum {

    TEST1(1L, "TEST", "random1");
    TEST2(2L, "TEST", "random2");
    TEST3(3L, "TEST", "random3");
    TEST4(4L, "TEST", "random4");
    TEST5(5L, "TEST", "random5");
    TEST6(6L, "TEST", "random6");
    TEST7(7L, "OTHER STRING", "random7");

    private Long id;
    private String type;
    private String text;

    private testEnum(Long id, String type, String text){
      this.id = id;
      this.type = type;
      this.text = text;
    }
}
Run Code Online (Sandbox Code Playgroud)

运行 PMD 检查时,它会引发以下错误:

字符串文字“TEST”在这个文件中出现了 6 次;第一次出现在第 10 行

有没有办法避免它而不是使用@SuppressWarnings("PMD")

java enums pmd

5
推荐指数
2
解决办法
4159
查看次数

如何通过正则表达式从 pmd 规则中排除类

有没有办法通过类名模式从 PMD 规则中排除类?

我正在寻找诸如此类的东西:

<rule ref="rulesets/java/coupling.xml/ExcessiveImports">
    <exclude-pattern>.*Test\.class</exclude-pattern>
</rule>
Run Code Online (Sandbox Code Playgroud)

我知道违反 SuppressXPath 方法,但我觉得它太丑陋/复杂。

谢谢!

java pmd

5
推荐指数
2
解决办法
2859
查看次数

标签 统计

pmd ×10

java ×6

eclipse ×2

ant ×1

checkstyle ×1

cpd ×1

enums ×1

findbugs ×1

gradle ×1

maven-2 ×1

sonarqube ×1

while-loop ×1