我们想从项目中删除所有system.out.println。
如何配置pom或者需要哪些依赖项。
谢谢, 阿尼尔
我正在使用 Maven PMD 插件来解决同样的问题。
1- 将插件添加到 pom.xml
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<configuration>
<rulesets>
<ruleset>${basedir}\src\main\resources\my-rules.xml</ruleset>
</rulesets>
</configuration>
</plugin>
</plugins
2- 将 my-rules.xml 放在项目资源文件夹下
<?xml version="1.0"?>
<ruleset name="Custom ruleset"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
</description>
<rule ref="rulesets/java/logging-java.xml/SystemPrintln" />
<rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace"/>
<rule ref="rulesets/java/basic.xml/OverrideBothEqualsAndHashcode"/>
<rule ref="rulesets/java/empty.xml/EmptyFinallyBlock"/>
<rule ref="rulesets/java/basic.xml/ReturnFromFinallyBlock" />
<rule ref="rulesets/java/logging-java.xml/LoggerIsNotStaticFinal"/>
</ruleset>
我有一个多模块 Maven 项目并让它像这样工作。
(1) 将以下插件添加到root/parent pom.xml中
<build>
...
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.21.2</version>
<configuration>
<rulesets>
<ruleset>pmd-ruleset.xml</ruleset>
</rulesets>
<printFailingErrors>true</printFailingErrors>
</configuration>
<executions>
<execution>
<phase>validate</phase>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.foo.group</groupId>
<artifactId>pmd-rules</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
(2) 我创建了一个 pmd-ruleset.xml (其他配置有很多弃用)
<?xml version="1.0"?>
<ruleset name="Custom ruleset"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
</description>
<rule ref="category/java/bestpractices.xml/SystemPrintln"/>
<rule ref="category/java/bestpractices.xml/AvoidPrintStackTrace"/>
<rule ref="category/java/errorprone.xml/OverrideBothEqualsAndHashcode"/>
<rule ref="category/java/errorprone.xml/ReturnFromFinallyBlock" />
</ruleset>
(3) 围绕它创建一个 jar 文件并将其上传到我们的存储库(如 Nexus 或 Artifactory)。还创建了一个基本的 pom.xml
(4) 然后我用
mvn pmd:pmd pmd:cpd
运行它