在代码中看到这样的东西很常见,希望只在开发期间:
//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,但我不认为你可以使它成为一个致命的错误。 (是的,有任务视图,但我希望能够将某些标签提升为构建断路器)
答案 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是正确的;根据文档Checkstyle,here按照您的要求行事。冒着“不要重新发明轮子”的风险,我可能也会建议你想要学习如何编写Ant任务的人想要完成的是一个很好的问题。
答案 4 :(得分:0)
您还可以使用Ant TODO任务。