在我们项目的一个子模块中执行目标 com.adobe.ac:flex-pmd-maven-plugin:1.2:report (run-flexpmd-main) 时,我收到以下错误。>
Failed to execute goal com.adobe.ac:flex-pmd-maven-plugin:1.2:report (run-flexpmd-main) on project sample-Project: An error has occurred in Flex PMD Report report generation. A system exception has been thrown: 0 -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.adobe.ac:flex-pmd-maven-plugin:1.2:report (run-flexpmd-main) on project sample-Project: An error has occurred in Flex PMD Report report generation.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoExecutionException: An error has occurred in Flex PMD Report report generation.
at org.apache.maven.reporting.AbstractMavenReport.execute(AbstractMavenReport.java:98)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more
Caused by: org.apache.maven.reporting.MavenReportException: A system exception has been thrown
at com.adobe.ac.pmd.maven.AbstractFlexPmdMojo.executeReport(AbstractFlexPmdMojo.java:212)
at org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:117)
at org.apache.maven.reporting.AbstractMavenReport.execute(AbstractMavenReport.java:92)
... 21 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
at com.adobe.ac.utils.StackTraceUtils.print(StackTraceUtils.java:48)
at com.adobe.ac.utils.StackTraceUtils.print(StackTraceUtils.java:66)
at com.adobe.ac.pmd.FlexPmdViolations.processFile(FlexPmdViolations.java:202)
at com.adobe.ac.pmd.FlexPmdViolations.processRule(FlexPmdViolations.java:214)
at com.adobe.ac.pmd.FlexPmdViolations.processRule(FlexPmdViolations.java:224)
at com.adobe.ac.pmd.FlexPmdViolations.processRules(FlexPmdViolations.java:244)
at com.adobe.ac.pmd.FlexPmdViolations.computeViolations(FlexPmdViolations.java:103)
at com.adobe.ac.pmd.engines.AbstractFlexPmdEngine.computeViolations(AbstractFlexPmdEngine.java:161)
at com.adobe.ac.pmd.engines.AbstractFlexPmdEngine.executeReport(AbstractFlexPmdEngine.java:138)
at com.adobe.ac.pmd.maven.AbstractFlexPmdMojo.executeReport(AbstractFlexPmdMojo.java:205)
... 23 more
下面是pom.xml文件中指定的目标配置:
<plugin>
<groupId>com.adobe.ac</groupId>
<artifactId>flex-pmd-maven-plugin</artifactId>
<version>1.2</version>
<configuration>
<failOnError>true</failOnError>
<ruleSet>
${settings.localRepository}/example_dir/flexpmd-rules/${flexPMD_ruleSetVersion}/flexpmd-rules-${flexPMD_ruleSetVersion}.xml
</ruleSet>
</configuration>
<executions>
<execution>
<id>run-flexpmd-main</id>
<phase>process-sources</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
<outputDirectory>${project.build.directory}/pmd/main</outputDirectory>
</configuration>
</execution>
<execution>
<id>run-flexpmd-test</id>
<phase>process-test-sources</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<sourceDirectory>${project.build.testSourceDirectory}</sourceDirectory>
<outputDirectory>${project.build.directory}/pmd/test</outputDirectory>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.adobe.flexpmd</groupId>
<artifactId>custom-ruleset</artifactId>
<version>0.0.4</version>
</dependency>
<dependency>
<groupId>example_dir</groupId>
<artifactId>flexpmd-rules</artifactId>
<version>${flexPMD_ruleSetVersion}</version>
<type>xml</type>
</dependency>
</dependencies>
</plugin>
我们对所有其他子项目使用相同的规则集,并且报告已成功生成。只有在一个特定的项目中它才会抛出错误。而且我们最近没有对 flexpmd 规则集进行任何更改。当我们将依赖项迁移到新的工件并在迁移后测试构建时,这个问题就开始了。我也尝试将 failonError 设置为 false,但它仍然抛出此错误。任何人都可以帮我们调试这个错误吗?