http://maven.apache.org/plugins/maven-pmd-plugin/目前处于2.4版本,它支持PMD版本4.2.2如何让maven-pmd-plugin支持最新的PMD版本?
是否有可能使用PMD 4.2.5版有了这个插件,如果是的话,我们怎么办呢?
http://maven.apache.org/plugins/maven-pmd-plugin/目前处于2.4版本,它支持PMD版本4.2.2如何让maven-pmd-plugin支持最新的PMD版本?
是否有可能使用PMD 4.2.5版有了这个插件,如果是的话,我们怎么办呢?
这里有一个Jira问题,请参阅MPMD-97(我建议投票支持)。
现在,你可以尝试在本地升级插件使用的PMD版本:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.4</version>
<dependencies>
<dependency>
<groupId>pmd</groupId>
<artifactId>pmd-jdk14</artifactId>
<version>4.2.5</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
我没有测试这一点,我不知道这是否会无缝地工作。
这是一个老问题,事情已经开始,但我仍然面临着将maven-pmd-plugin:3.8从pmd 5.6.1升级到5.8.1的挑战。 maven-pmd-plugin page仍然缺少这样做的文档。
pom.xml的配置:
<properties>
<rev.javac>1.8</rev.javac>
<rev.pmd-plugin>3.8</rev.pmd-plugin>
<rev.pmd>5.8.1</rev.pmd>
</properties>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${rev.pmd-plugin}</version>
<dependencies>
<dependency>
<groupId>my.project.group</groupId>
<artifactId>project-standards</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-core</artifactId>
<version>${rev.pmd}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-java</artifactId>
<version>${rev.pmd}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>pmd-validation</id>
<phase>process-test-classes</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<rulesets>
<ruleset>/pmd/project-pmd-rules.xml</ruleset>
</rulesets>
<targetDirectory>${project.build.directory}</targetDirectory>
<targetJdk>${rev.javac}</targetJdk>
<failOnViolation>true</failOnViolation>
<failurePriority>5</failurePriority>
<verbose>false</verbose>
<linkXRef>false</linkXRef>
</configuration>
</plugin>
完美无瑕的作品 – cabaji99 2017-10-19 19:29:20
我在尝试你的建议的过程,但我需要JDK 1.5的支持(PMD-JDK14使得JDK 1.4兼容) 使上述变化导致插件检索更新版本的PMD,但它仍然不断生成PMD 4.2.2报告。 我不知道为什么会发生这种情况,但会让你张贴在结果上。 – Joe 2010-01-11 11:47:19
我在我身边进行了一些测试,看起来确实在'build'下为插件指定'dependencies'并不会影响'reporting'部分。但是,在'reporting'下指定依赖关系是不可能的,所以我实际上不知道如何解决这个问题(除了修补maven-pmd-plugin)。 – 2010-01-11 22:52:25
是的,报告部分不允许您指定依赖关系。我在build - > pluginManagement - > plugins - > plugin中移动了这个配置,但是我正在验证是否可以将它作为构建阶段的一部分运行。 – Joe 2010-01-12 04:43:32