用PMD-Maven分析Javascript
我目前正在尝试PMD作为我们公司可以使用的一种可能的静态分析工具。我对Java文件进行了分析,没有任何问题,但我似乎无法使用Javascript进行分析,每次执行pmd:pmd时,它都会再次分析Java文件。总之,下面是我的POM.xml的一个片段: *使用Maven 3.3.1用PMD-Maven分析Javascript,javascript,maven,maven-plugin,pmd,Javascript,Maven,Maven Plugin,Pmd,我目前正在尝试PMD作为我们公司可以使用的一种可能的静态分析工具。我对Java文件进行了分析,没有任何问题,但我似乎无法使用Javascript进行分析,每次执行pmd:pmd时,它都会再次分析Java文件。总之,下面是我的POM.xml的一个片段: *使用Maven 3.3.1 <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<sources>
${basedir}/src/main/webapp/js
</sources>
</configuration>
<executions>
<execution>
<goals>
<goal>add-source</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.7</version>
<configuration>
<language>javascript</language>
<rulesets>
<ruleset>ecmascript-basic</ruleset>
<ruleset>ecmascript-braces</ruleset>
<ruleset>ecmascript-unnecessary</ruleset>
</rulesets>
<includes>
<include>**/*.js</include>
</includes>
</configuration>
</plugin>
</plugins>
</reporting>
org.codehaus.mojo
但似乎无法让它工作。你们能告诉我我是否缺少一些必需的设置/配置吗?TIA。您的配置是正确的(假设缺少的
标记只是编辑问题)。很可能您没有运行正确的maven目标
使用当前配置,PMD将在站点生成期间作为报告运行,即mvn站点
。但是,如果这样做,将不会运行buildhelpermaven插件:addsource
target,也不会找到源代码
解决这个问题的最基本(无用)的方法就是调用mvn生成源站点
您可以通过如下更改插件配置,在mvn站点上自动运行addsource
:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>config-js</id>
<phase>pre-site</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>${basedir}/src/main/javascript</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
org.codehaus.mojo
构建助手maven插件
3.0.0
配置js
现场前
添加源
${basedir}/src/main/javascript
这里,阶段
设置为pre-site
的神奇之处在于将执行挂接到站点
生命周期的开始
如果您希望能够使用mvn PMD:PMD
或mvn PMD:check
运行PMD,那么您的配置应该略有不同。PMD插件不应该是
部分的一部分,而应该是
部分的一部分。不幸的是,PMD maven插件没有将自身挂接到生命周期事件,因此在这种情况下,我们必须手动确保运行build helper maven plugin:add source
。再一次,我们可以使用mvn生成源pmd:pmd
执行此操作包含的错误,您使用的是*/.js
,而不是***.js
,谢谢,我会再次尝试分析。仍然不起作用。执行mvn pmd:pmd或pmd:check是否重要?此外,我还通过执行mvn站点:deploy.Cross-Linking:build helper maven plugin:add source
将结果发布到maven站点,maven pmd plugin 3.7应该不再需要了-只要您像中一样配置compilesourceoots
,如果您使用maven 3.3.9(请参见和)@johnco,它现在就可以工作了。只需在内部传输pmd插件并执行mvn pmd:pmd。我现在需要做的就是将结果传递给maven站点。非常感谢你。