【问题标题】:How to use ant to check for tags (TODO: etc) in java source如何使用 ant 检查 Java 源代码中的标签(TODO:等)
【发布时间】:2010-12-10 19:51:00
【问题描述】:

在代码中经常看到这样的东西,希望只在开发过程中:

//XXX: not in production!
String password = "hello"; // getActualPassword(...);
...
catch(Exception e) { /* TODO: Auto-generated catch block*/ }

我希望 ant 能够 a) 警告(在 TODO: / FIXME: 标签上)或失败(在 XXX: 或类似标签上)
构建服务器是 linux,自制并基于 ant。如果不在 Windows 上,至少需要在 linux 上工作。

如果替代方法是阻止文件提交,我们也会使用 perforce。
我们也使用 eclipse,但我不认为你可以让它成为一个致命的错误。 (是的,有任务视图,但是我希望能够将某些标签提升为构建破坏者)

【问题讨论】:

    标签: java eclipse ant comments todo


    【解决方案1】:

    也许你可以使用Checkstyle。 我认为有一个 TODO cmets 的检查,并且 checkstyle 可以作为 Ant 任务运行,这样你就可以实现你想要的。

    【讨论】:

    • +1 好电话。我想到了 findbugs,因为它可以找到空的 catch 块示例,但不能找到其他示例。谢谢。
    【解决方案2】:

    您可以使用 ant 条件进行这些检查:

    <condition property="isSourceFileOK">
        <not>
            <isfileselected file="${source}">
                <contains text="TODO" casesensitive="yes"/>
            </isfileselected>
        </not>
    </condition>
    <fail unless="isSourceFileOK" message="Source contains TODO!" />
    

    【讨论】:

      【解决方案3】:

      首先,jassuncao 是正确的;根据文档hereCheckstyle 可以满足您的要求。冒着招致“不要重新发明轮子”的愤怒的风险,我还可能建议你想要完成的事情对于想要学习如何编写 Ant 任务的人来说是一个很好的问题。

      【讨论】:

        【解决方案4】:

        对于 Perforce 变体,您可能希望为此编写一个触发器。请参阅the perforce docu about triggers 了解更多信息。在您的情况下,您将编写一个“更改内容”触发器,以便在文件提交之前查看 Perforce 服务器上的文件内容。

        在触发器中,您可以使用 p4 files //depot/...@4711 获取更改文件的列表(在本例中为 4711,但在命令行上移交给触发器。对于您将使用的每个文件 @987654323 @ 获取文件的内容并扫描您的关键字(TODO/XXX)。如果是 TODO,您可以在 stdout 上打印警告并以代码 0 退出,以便提交成功并在这种情况下以代码 1 退出XXX 以使提交失败。

        【讨论】:

          【解决方案5】:

          您也可以使用Ant TODO 任务。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-04-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-09-22
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多