如何为 checkstyle 定义抑制定义,适用于 ant 和 eclipse

2023-12-20

我在项目中使用 checkstyle 并且定义了一个抑制滤波器 http://checkstyle.sourceforge.net/config.html#Filters在我的 checkstyle 配置中。我使用 Apache ant 通过持续集成进行自动构建。

我的问题来自以下情况:我不想在基于项目的目录中填充太多文件,因此 checkstyle.xml 和suppressions.xml 都位于名为conf 的子目录中(用于构建配置)。现在,Ant 和 Eclipse 查找 Suppressions.xml 的工作方式有所不同。

在我声明一个 ant 任务以使用 checkstyle 的基本配置查找 checkstyle.xml 后,Ant 使用基于项目的目录作为 basedir 来查找 Suppressions.xml。此 checkstyle.xml 现在包含以下内容:

<module name="SuppressionFilter">
    <property name="file" value="conf/suppressions.xml"/>
</module>

通过这种方式,ant-build 会找到suppressions.xml,因为构建的basedir 是项目目录。

现在使用checkstyle插件 http://eclipse-cs.sourceforge.net/为Eclipse带来了一个问题。它从 checkstyle.xml 的路径 (conf) 开始查找 Suppressions.xml。对于 Eclipse,声明必须如下所示才能工作:

<module name="SuppressionFilter">
    <property name="file" value="suppressions.xml"/>
</module>

编辑:即使这不起作用,Eclipse 似乎始终需要绝对路径。

我想知道一种方法,让 Eclipse 和 Ant 都可以使用相同的 checkstyle-configuration。有人知道这个问题的解决方案吗?绝对路径不是解决方案,因为每个开发人员和 CI 服务器都有不同的项目目录路径。


这个问题很老了,但我找到了一种更好的方法来使用Checkstyle 高级属性 http://eclipse-cs.sourceforge.net/advanced_properties.html:

对于 Eclipse Checkstyle 插件,${samedir}属性扩展到配置文件所在的目录:

在您的情况下,您的模块配置将如下所示:

<module name="SuppressionFilter">
    <property name="file" value="${samedir}/conf/suppressions.xml" />
</module>

Ant 目标还将设置samedir财产:

<checkstyle config="${checkstyle.tool.dir}/checks.xml" failOnViolation="false">
    <fileset dir="${src.dir}" includes="**/*.java" />
    <property key="samedir" value="${checkstyle.tool.dir}/conf" />
</checkstyle>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 checkstyle 定义抑制定义,适用于 ant 和 eclipse 的相关文章

随机推荐

  • Hadoop字数统计:接收以字母“c”开头的单词总数

    这是 Hadoop 字数统计 java map 和 reduce 源代码 在地图函数中 我已经可以输出所有以字母 c 开头的单词以及该单词出现的总次数 但我想做的只是输出总数以字母 c 开头的单词 但我在获取总数方面有点困难 任何帮助将不胜
  • 在 Clojure 中捕获系统/输出

    我正在使用一个将文本输出到控制台的 Java 包 我需要捕获字符串中的文本 但我不知道如何执行此操作 从查看 Clojure 文档看来 我所要做的就是将 java 调用包装在with out str但这对我不起作用 最小代码示例 如果我尝试
  • 写入没有段寄存器的地址

    我知道这段代码实际上会将数据写入 ds 100h mov 100h ax 但我怎样才能写入线性地址100H直接不使用任何段寄存器作为段基址 没有办法绕过段寄存器 每个内存访问都与某个段寄存器相关 如果要写入绝对地址 请首先向段寄存器加载适当
  • 多个 apache 根进程

    今天我注意到 当从我们的网络服务器发出请求时 速度相当慢 我开始研究它 发现了大量 root 拥有的 apache 进程 我不确定这实际上是导致事情变慢的原因 但无论如何 它看起来并不好 问题是 我不知道从这里做什么 如何找出为什么有这么多
  • WinRT 能够运行 Win 7 和 8 桌面应用程序吗?

    我读到了很多关于它的不同意见 但 WinRT 是像 Win 7 和 8 一样的实际桌面操作系统吗 您能够运行功能齐全的桌面应用程序和游戏吗 WinRT 不是桌面或操作系统 而是一个 API 就像传统的winapi一样 它与 winapi 有
  • 记录编译源代码的时间

    我有一个源文件 当我编译代码时 我希望可执行文件能够记住它的构建时间 我想知道是否可能 例如 int main time t t Time when this line is compiled print out value of t in
  • 使用 Jar 转换类,合并调试重复条目

    这是重复类的屏幕截图 https i stack imgur com ET0hk png当我开始集成 Digits 时 每次在 Marshmallow 之前的设备上构建应用程序时 我都必须在升级后升级 Crashlytics 我遇到了构建错
  • 尽管有可用内存,但出现 OutOfMemory 错误

    我看到一个很奇怪的问题 本质上 有时即使有大量内存 大位图内存分配也会失败 有很多帖子似乎都在问类似的问题 但它们都与前蜂窝 Android 有关 我的理解是图像现在分配在堆上 而不是一些外部内存 无论如何 请查看下面的日志 10 14 1
  • 如何调用Python类描述符对象上的方法?

    我创建了一个class String with get set 和一个方法to db 然而 当我这样做时name String 我做不到self name to db 因为它在召唤to db 关于返回的值 get 而不是对象 name cl
  • 一个标签中的不同字体

    有谁知道如何创建具有两种不同字体或至少两种不同字体大小的标签 Windows 窗体 我认为你应该覆盖默认标签onPaint方法并使用 Graphics 手动绘制多个文本 字体 看看这个example http ondotnet com pu
  • C#:引用 Windows shell 接口

    我对 C 还很陌生 我正在尝试完成一个我一直在从事的小项目 该项目使用少量 C 代码来协助开发 Windows 桌面小工具 基本上 我正在尝试实施IDesktopGadget接口 以便我可以使用运行小工具 http msdn microso
  • 将嵌套 json 映射到 ember-data 模型

    我没有使用 RESTAdapter 所以我创建 Ember 对象并使用reopenClass 方法和 jquery ajax 函数进行 ajax 请求 代码是 OlapApp Dimenssions Ember Object extend
  • 如何从提示框中获取数值? [复制]

    这个问题在这里已经有答案了 我试图用 HTML jQuery 和 JavaScript 进行一些简单的数学计算 所以我想从用户那里获取输入 对于输入 我尝试这样做 var x prompt Enter a Value 0 var y pro
  • ffmpeg 可以将音频转换为原始 PCM 吗?如果是这样,怎么办? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我目前正在使用ffmpeg转换FLV Speex to WAV pcm s16le 成功地 但是 我现在需要输出格式为 RAW 即 PCM
  • 是否可以在具有自定义域的 GitHub Pages 网站上使用 HTTPS/SSL?

    有没有办法在使用自定义域的 GitHub Pages 网站上使用 HTTPS SSL 建议使用 SSL 以获得更好的搜索引擎排名 除此之外它还有很多其他用途 GitHub 页面上的自定义域do支持HTTPS SSL GitHub Pages
  • 在 Eclipse 中使用 Android 连接到 MongoDB

    我目前正在开发一个 Android 应用程序 它将使用来自MongoLab 我团队的另一名成员已经创建了一个工作数据库mongolab com 我只是在通过 Eclipse 连接到它时遇到问题 我已经浏览了谷歌和无数的教程 但我真的不太了解
  • 在 Windows 10 Bash 上安装 webpack(Windows 上的 Ubuntu 上的 Bash)。不断收到“webpack:找不到命令”

    我正在努力解决这个问题React Redux 教程 http teropa info blog 2015 09 10 full stack redux tutorial html client project setup我需要安装 webp
  • 测量5G(新无线电)数据

    List
  • label.setText NullPointerException

    你好 第一次来这里 但这里是 我有一个 JavaFX 应用程序 可以动态更改 FXML UI 标签 并且数据是从 Player 类中提取的 有问题的两个类是Player java and InterfaceHandler java 玩家类存
  • 如何为 checkstyle 定义抑制定义,适用于 ant 和 eclipse

    我在项目中使用 checkstyle 并且定义了一个抑制滤波器 http checkstyle sourceforge net config html Filters在我的 checkstyle 配置中 我使用 Apache ant 通过持