代码之家  ›  专栏  ›  技术社区  ›  Paul Adamson

如何在Java源代码中使用ANT检查标签(todo:ETC)

  •  5
  • Paul Adamson  · 技术社区  · 16 年前

    在代码中经常会看到这样的情况,希望只有在开发过程中才会看到:

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

    我希望Ant能够a)警告(在todo:/fixme:tags上)或失败(在xxx:或similar上)
    构建服务器是Linux,自主开发,基于Ant。如果不是在Windows上,至少需要在Linux上工作。

    如果另一种选择是阻止文件提交,那么我们也将使用性能。
    我们也使用Eclipse,但是我认为您不能将其作为致命错误。(是的,这里有任务视图,但是我希望能够提升某些标记以构建断路器)

    5 回复  |  直到 8 年前
        1
  •  6
  •   jassuncao    16 年前

    也许你可以用 Checkstyle . 我认为有一个对todo注释的检查,并且checkStyle可以作为一个Ant任务运行,这样你就可以实现你想要的。

        2
  •  5
  •   rsp    16 年前

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

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

    至于performance变量,您可能希望为此编写一个触发器。参见 the perforce docu about triggers 更多信息。在您的例子中,您将编写一个“更改内容”触发器,以便在提交文件之前查看Perfoce服务器上的文件内容。

    在你可以使用的触发器内 p4 files //depot/...@4711 获取更改的文件列表(在本例中是4711,但在命令行上被移交给触发器)。对于你要使用的每个文件 p4 print -q //depot/path/to/file@4711 要获取文件的内容并扫描该内容以查找关键字(todo/xxx)。在todo的情况下,可以在stdout上打印警告,并使用代码0退出,这样提交成功,而在xxx的情况下使用代码1退出,这样提交失败。

        4
  •  2
  •   Community Mohan Dere    8 年前

    第一, jassuncao 是正确的; Checkstyle 根据医生的说法,按照你的要求去做 here . 冒着“不要再重新发明轮子”的危险,我也可能建议你想要完成的是一个很好的问题,对于那些想学习如何写蚂蚁任务的人来说。

        5
  •  0
  •   Alex Ling Zhong    14 年前

    您也可以使用 Ant TODO 任务。