Java PMD问题作为空指针异常

Java PMD问题作为空指针异常,java,pmd,Java,Pmd,我使用maven pom为多个Apex自定义规则创建了一个jar文件。 我的src/main/java文件夹包含8个java程序。 我已经用它创建了一个jar文件,但不确定jar何时执行,哪个类将被执行?我想通过单个jar文件运行分析 当我使用pmd.bat命令运行此命令时,会出现空指针异常,因为jar无法获取要首先调用哪个主类来运行分析您必须检查.jar,文件META-INF/MANIFEST.MD,在主类键中引用了哪个类。如果有,可以在运行时使用java-jar myjar.com.test

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

您必须检查
.jar
,文件
META-INF/MANIFEST.MD
,在
主类
键中引用了哪个类。如果有,可以在运行时使用
java-jar myjar.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>

...
org.apache.maven.plugins
maven jar插件
...
真的
完全合格
...
...

我假设,您要执行以下操作:

  • 您已经为Apex语言创建了自定义规则
  • 您想编译自定义规则
  • 您希望创建一个自定义PMD分发,其中包含所有库存规则和自定义规则,以便轻松安装和使用
为此,请查看示例项目()——特别是java示例: 它可能有点过时,您需要为apex进行调整,但它描述了您拥有的两个选项(使用自定义发行版或只是将自定义规则jar复制到lib文件夹中)


一旦在PMD安装中集成了自定义规则,执行PMD时就可以使用这些规则。

可执行jar的清单中指定了主类。或者,您可以将jar指定为类路径,并在Java命令行上指定主类。您好,我现在编写了8条自定义规则,不确定应该在清单部分提到哪个主类。由于我希望调用所有类,我将jar放在pmd安装的lib文件夹中执行。在此之前,我编写了一条规则,并在运行pmd bat时将该类名包含在清单部分的主类中。它工作了你能帮我建议如何将所有这些类包含在一个jar文件中吗?您好,我现在编写了8条自定义规则,不确定应该在清单部分提到哪个mainclass..因为我希望调用所有类…我将jar放在pmd安装的lib文件夹中执行。在此之前,我编写了一条规则,并在运行pmd bat时将该类名包含在清单部分的主类中。你可以实现一个“Main”类,它可以在基于argv的8个类中进行选择,也可以在所有8个类中进行循环!谢谢Jonathan。我想这会有帮助。让我试试Hi adangel,我有一个问题。自定义jar名称有任何限制吗?因为我在它前面加上了我公司的名字,罐子坏了……但是我一把它取下来……罐子就开始工作了