gpt4 book ai didi

java - 如何在 Maven 中对所有模块使用单个 checkstyle 抑制文件

转载 作者:搜寻专家 更新时间:2023-11-01 01:15:12 25 4
gpt4 key购买 nike

我有一个由多个 Maven 模块组成的项目,这些模块都是父模块的子模块。我将父模块设置为使用 checkstyle,子模块都正确地继承了这个行为。我希望所有子模块都使用其插件中定义的父抑制文件。我定义了一个在 checkstyle 插件中使用的属性 checkstyle.suppression

<properties>
<checkstyle.suppressions>${basedir}\src\checkstyle\suppressions.xml</checkstyle.suppressions>
</properties>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.2</version>
<configuration>
<configLocation>config/sun_checks.xml</configLocation>
<suppressionsLocation>${checkstyle.suppressions}</suppressionsLocation>
<suppressionsFileExpression>${checkstyle.suppressions}</suppressionsFileExpression>
</configuration>
</plugin>
</plugins>

这对父模块来说工作正常,但所有子模块都试图在它们的 basedir 中找到该文件,这确实有意义。
我确信一定有一个我遗漏的简单解决方案,但是有没有一种方法可以定义这个位置,以便所有子模块都可以使用父位置而无需对其进行硬编码?

最佳答案

上面的答案很危险。我认为每个项目都应该是独立的,因此引用外部文件迟早会破坏构建。 Checkstyle 可以为文件获取一个 url,但这意味着你不能离线构建。更好的方法是将文件(也可以添加 pmd.xml)打包到一个 jar 中,然后将该 jar 添加到 checkstyle(或 pmd)插件的类路径中。我有一个例子here以及更多关于覆盖插件类路径的信息 here

关于java - 如何在 Maven 中对所有模块使用单个 checkstyle 抑制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1374042/

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