如何标记生产前必须删除的一些代码?

ser*_*erg 7 java eclipse ant todo

有时为了测试/开发目的,我们在必须在生产构建中删除的代码中进行一些更改.我想知道是否有一种简单的方法来标记这样的块,这样只要它们存在,生产构建就会失败,或者至少它会在构建过程中以某种方式警告你.

简单"//TODO:"并不真正起作用,因为它被遗忘并混合了大量的其他待办事项.有什么更强的吗?

或者即使我可以创建一些外部txt文件并在生产之前放置有关该操作的说明,并且该ant将检查该文件是否存在然后取消构建.

我们正在使用Eclipse/Ant(和java + Spring).

更新:我并不是说在本地和生产中存在大量不同的代码.事实上,所有代码都是相同的,应该是相同的.简单地说,我注释掉了一些代码行,以便在开发过程中节省大量时间,并忘记取消注释或者沿着这些方向进行注释.我只是希望能够以某种方式标记项目需要注意的事项,并且生产构建将失败或显示警告.

Car*_*ter 13

避免必要性.如果您将代码放入一个不应该在生产中的类中,请弄清楚如何以不同方式进行操作.比方说,提供一个钩子,以便测试代码可以执行它所需的操作,但将测试代码留在类之外.或者用于测试的子类,或者使用依赖注入,或者使代码有效且安全可靠的任何其他技术,同时仍然可以测试.许多这样的技术被充分证明迈克尔羽毛奇书,修改代码的工作.


pau*_*lcm 12

您还可以定义更强大的任务注释标记:FIXME(高优先级)和XXX(普通优先级)是Eclipse中的标准,您可以定义更多任务标记(Eclipse属性 - > Java - >编译器 - >任务标记)

如果您想使构建失败,可以使用Ant(1.7)包含文件选择器来查找包含指定文本的文件:

<target name="fixmeCheck">
  <fail message="Fixmes found">
    <condition>
      <not>
        <resourcecount count="0">
          <fileset dir="${pom.build.sourceDirectory}"
                   includes="**/*.java">
             <contains text="FIXME" casesensitive="yes"/>
          </fileset>
        </resourcecount>
      </not>
    </condition>
  </fail>
</target>

<target name="compile" depends="fixmeCheck">
Run Code Online (Sandbox Code Playgroud)

显然,请更改${pom.build.sourceDirectory}到源目录以及FIXME要搜索的注释.

有没有人知道在构建文件中打印出这个文件集中的文件的好方法(除了再次查看Eclipse之外)?


Ter*_*ber 7

如果存在块,则添加单元测试失败.也许该块设置CODE_BLOCK_IS_NOT_DELETED = true;单元测试检查的全局变量.

但是,更大的问题是您使用不需要或在生产中使用的代码进行测试/开发.这听起来不对.