如何使用ant来检查java源代码中的标签(TODO:etc)

时间:2009-10-28 10:53:39

标签: java eclipse ant comments todo

在代码中看到这样的东西很常见,希望只在开发期间:

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

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

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

5 个答案:

答案 0 :(得分:6)

也许你可以使用Checkstyle。 我认为有一个TODO评论的检查,checkstyle可以作为Ant任务运行,所以你可以实现你想要的。

答案 1 :(得分:5)

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

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

答案 2 :(得分:3)

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

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

答案 3 :(得分:2)

首先,jassuncao是正确的;根据文档Checkstylehere按照您的要求行事。冒着“不要重新发明轮子”的风险,我可能也会建议你想要学习如何编写Ant任务的人想要完成的是一个很好的问题。

答案 4 :(得分:0)

您还可以使用Ant TODO任务。