gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 05:28:02 30 4
gpt4 key购买 nike

我在项目 checkstyle 中使用并定义了一个 SuppressionFilter在我的 checkstyle 配置中。我使用 Apache ant 通过持续集成进行自动构建。

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

Ant使用project-basedir作为basedir来查找suppressions.xml,在我声明了一个ant-task以使用checkstyle的基本配置查找checkstyle.xml之后。此 checkstyle.xml 现在包含以下内容:

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

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

现在使用 checkstyle-plugin对于Eclipse 带来了一个问题。它从 checkstyle.xml 的路径 (conf) 开始寻找抑制.xml。对于 Eclipse,声明必须看起来像这样,才能工作:
<module name="SuppressionFilter">
<property name="file" value="suppressions.xml"/>
</module>

编辑:即使这不起作用,Eclipse 似乎总是需要一个绝对路径。

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

最佳答案

使用 Checkstyle 的 property expansion功能。在您的 checkstyle.xml申报您的 SupressionFilter作为:

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

然后在 Ant 构建脚本中修改 Checkstyle 任务以包含嵌套属性:
<checkstyle config="conf/checkstyle.xml">
<fileset dir="src" includes="**/*.java"/>
<property key="checkstyle.suppressions.file" value="conf/suppressions.xml"/>
</checkstyle>

关于ant - 如何为 checkstyle 定义抑制定义,同时适用于 ant 和 eclipse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/701012/

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