【问题标题】:Deleting certain classes on running an external tool in eclipse?在eclipse中运行外部工具时删除某些类?
【发布时间】:2010-09-09 16:16:44
【问题描述】:

我在eclipse(3.4)中设置了一个外部工具(sablecc),它在当前项目中生成一堆类。我需要相当频繁地运行这个工具并重新生成这些类。这意味着每次我想运行 sablecc 时,我都必须手动删除 sablecc 创建的包/类,以确保我不会在新旧生成的类之间发生冲突。是否有一些简单的方法可以从 Eclipse 或其他方式中自动执行此操作?

【问题讨论】:

    标签: eclipse sablecc


    【解决方案1】:

    不确定我是否理解您的观点,我想您需要在运行 sablecc 之前删除旧类,因为其中一些最终不会在新运行中创建。

    最好用目标编写简短的Ant build.xml,它首先删除类(Ant 删除任务),然后运行 ​​sablecc(Ant 执行任务)。也可以预设 eclipse 以便在 Ant 完成后刷新工作空间。

    将build.xml放到项目的任意位置,右键,Run As/Ant Build。

    为了简洁的风格,您可以使用其 Ant 任务(由 org.sablecc.ant.taskdef 实现)调用 sablecc,而不是在新进程中在外部运行它。

    【讨论】:

      【解决方案2】:

      您可以告诉 Eclipse 在外部工具运行后刷新工作区(或其中的一部分)。这应该会强制 Eclipse 检测任何新的/删除的类。

      【讨论】:

      • 不,这不太符合我的要求。 Sablecc 会忽略项目中已经存在的任何内容,并在现有内容之上生成其类。我需要在调用 sablecc 之前删除旧生成的类。
      【解决方案3】:

      JesperE 指的是用于运行 sablecc 的外部工具配置中的选项 Refresh->Refresh resources on completion

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-03
        • 1970-01-01
        • 1970-01-01
        • 2010-11-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多