【发布时间】:2020-04-28 00:34:20
【问题描述】:
http://maven.apache.org/plugins/maven-pmd-plugin/ 目前是 2.4 版,支持 PMD 4.2.2 版
是否可以在此插件中使用 PMD 4.2.5 版本,如果可以,我们该怎么做?
【问题讨论】:
http://maven.apache.org/plugins/maven-pmd-plugin/ 目前是 2.4 版,支持 PMD 4.2.2 版
是否可以在此插件中使用 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>
我没有测试这个,我不知道它是否可以无缝运行。
【讨论】:
build 下的插件指定dependencies 不会影响reporting 部分。但是,无法在reporting 下指定依赖关系,所以我实际上不知道如何解决这个问题(除了修补 maven-pmd-plugin)。
这是一个老问题,事情已经发生了变化,但我面临着将 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>
【讨论】: