5

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

//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,但我不认为你可以让它成为一个致命的错误。(是的,有任务视图,但是我希望能够将某些标签提升到构建破坏者)

4

5 回答 5

6

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

于 2009-10-28T11:07:40.483 回答
5

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

<condition property="isSourceFileOK">
    <not>
        <isfileselected file="${source}">
            <contains text="TODO" casesensitive="yes"/>
        </isfileselected>
    </not>
</condition>
<fail unless="isSourceFileOK" message="Source contains TODO!" />
于 2009-10-28T12:03:19.850 回答
3

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

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

于 2009-10-28T16:48:27.753 回答
2

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

于 2009-10-28T12:05:45.447 回答
0

您还可以使用Ant TODO任务。

于 2011-08-22T10:36:27.243 回答