PMD问题为空指针异常



我用maven pom为多个Apex自定义规则创建了一个jar文件。我的src/main/java文件夹包含8个java程序。我已经用它创建了一个jar文件,但不确定当jar被执行时,哪个类会被执行?我想通过单个jar文件运行分析当我用pmd.bat命令运行这个时,我得到了null指针异常,因为jar无法获得首先调用哪个主类来运行分析

您必须签入.jar,即文件META-INF/MANIFEST.MD,哪个类在Main-Class键中被引用。如果有,可以在运行时使用java -jar myjar.jar com.test.Main指定它(如果您的类是com.test.Main(。

然而,最好直接在MANIFEST.MD中指定它,例如通过一个maven插件

<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
...
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
</configuration>
...
</plugin>
</plugins>
</build>
...
</project>

我认为,您需要执行以下操作:

  • 您已经为Apex语言创建了自定义PMD规则
  • 您希望编译自定义规则
  • 您希望创建一个自定义PMD分发版,其中包含所有库存规则和您的自定义规则,以便您可以轻松地安装和使用它

为此,请查看示例项目(https://github.com/pmd/pmd-examples)-尤其是java的例子:https://github.com/pmd/pmd-examples/tree/java它可能有点过时,您需要根据apex对其进行调整,但它描述了您拥有的两个选项(要么使用自定义分发,要么只是将自定义规则jar复制到lib文件夹中(。

在PMD安装中集成了自定义规则后,在执行PMD时,您的规则就可用了。

最新更新