gpt4 book ai didi

java - 如何使用 Maven 为 PMD 创建自定义规则?

转载 作者:行者123 更新时间:2023-11-30 11:12:37 26 4
gpt4 key购买 nike

我正在尝试根据“Jenkins 持续集成手册”一书中的示例实现新的 XPath PMD 规则。

我的 pom 文件的相关部分:

<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<configuration>
<targetJdk>1.6</targetJdk>
<format>xml</format>
<rulesets>
<ruleset>password_ruleset.xml</ruleset>
</rulesets>
</configuration>
</plugin>
</plugins>
</reporting>

我的 Maven 项目的根目录中有文件“password_ruleset.xml”,它看起来如下:

<?xml version="1.0"?>
<ruleset name="STUPID PASSWORDS ruleset"
xmlns="http://pmd.sf.net/ruleset/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description>
Lets find stupid password examples
</description>
<rule name="NO_PASSWORD"
message="If we see a PASSWORD we should flag"
class="net.sourceforge.pmd.rules.XPathRule">
<description>
If we see a PASSWORD we should flag
</description>
<properties>
<property name="xpath">
<value>
<![CDATA[
//VariableDeclaratorId[@Image='PASSWORD']
]]>

执行时出现以下错误:

Failure executing PMD: Couldn't find the class net.sourceforge.pmd.rules.XPathRule

检查哪些库包含此类我意识到它本身就是“pmd”。我试图在没有运气的情况下将依赖项添加到依赖项部分。

我应该在哪里改变什么来克服这个问题?

请在 github 中查看整个设置: https://github.com/dave00/pmdcustomrule

最佳答案

我的一个 friend 通过 github 解决了我的问题: https://github.com/mnyeste/pmdcustomrule/commit/ad2f04e33d2a5a04ef95d059d64a258ebca5b7be

总结:

PMD API change 4.3 -> 5.0 Class net.sourceforge.pmd.rules.XPathRule has been renamed to net.sourceforge.pmd.lang.rule.XPathRule

Maven PMD plugin version 3.2 is using PMD 5.1.2

任何感兴趣的人现在都可以从 github 中拉取我的示例项目以查看其工作情况。

关于java - 如何使用 Maven 为 PMD 创建自定义规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26786013/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com