【问题标题】:Strategy for using ant builds from Eclipse从 Eclipse 使用 ant 构建的策略
【发布时间】:2011-01-28 12:41:21
【问题描述】:

我们的项目有非常自定义的 ant 构建文件,基本上是这样做的:

  • 一些预编译工作(例如代码生成)
  • 编译 Java 代码
  • 一些编译后工作(例如,将文件复制到 classes 目录以包含在 jar 文件中;构建 jar 文件;将文件复制到其他位置以便 Tomcat 提取它们)

目前,我们的 ant 集成包括告诉 Eclipse 运行“do it all”ant 目标(它自己编译)。

这看起来很可疑,因为 ant 正在编译而不是 Eclipse,而且 Eclipse 编译器会产生更好的错误消息。还不清楚应该先运行 ant 构建还是默认 Java 构建。当项目中的任何内容发生变化时,我们需要告诉 ant 目标基本上运行。这导致蚂蚁在每次保存时都运行整个机器,基本上。这很慢。 (如果我们没有编辑代码生成器的输入文件,那么我们可以跳过运行代码生成器,并且ant需要很长时间才能弄清楚它不需要做任何事情。)

这里有要遵循的策略建议吗?

  • 我们是否需要将 ant builder 拆分为多个 ant builder,每个 ant builder 都有自己的一组监视资源,其中一些在 Java builder 之前运行,其他在 Java builder 之后运行?
  • 我们应该先运行 ant,然后再运行 Java builder,还是反之亦然?刷新设置应该是什么?
  • 我们是否要告诉 Eclipse 重建其他人触及的类文件?

感谢您的任何建议。

【问题讨论】:

    标签: eclipse ant


    【解决方案1】:

    将生成作业委托给 Eclipse 的最佳方式是通过 Ant 构建器。 Look here 了解如何设置构建器。

    在您的 build.xml 文件中创建 2 个目标:generate-codecleanup-generated-code

    然后以这种方式将它们连接到构建器的Targets 选项卡中:

    这将使您的项目能够很好地响应构建事件。

    下一步是让 Eclipse 自动编译您生成的源代码。

    为此,在项目的根目录中创建一个名为generated-src 的目录。这个目录应该是空的,你应该把它放在你的源代码控制系统的管理之下。因为会有一些生成代码,所以把.xxxignore文件放到这个目录下。

    generated-src 目录就位后,将其设为项目的源目录(Java 构建路径中的 Source 选项卡)

    最后但并非最不重要的一点是,一旦您生成了源代码,您就想启动 Eclipse 的 java 编译器。为此,您需要修改 Ant 构建器的 Refresh 选项卡。

    这是执行此操作的设置:

    当你点击Specify Resources按钮时,确保你的整个项目目录被选中,就像这里:

    这样,当项目中的任何内容发生更改时,它会启动 ant 构建器,它可能会或可能不会重新生成源代码,这会导致 java 重新编译。

    最后一张截图。确保 build.xml 和基本目录都与 Builder 的 Main 选项卡中的 ${workspace_loc} 相关,就像这里一样(基本上只使用 Browse Workspace 按钮):

    完成此操作后,将 generate-codecleanup-generated-code 连接到 build.xml 中的常规目标,您将调用这些目标进行命令行构建。这样,Eclipse 和您的命令行构建执行的代码生成步骤完全相同。此外,您的 Eclipse 构建将对项目的真实源完全敏感。

    【讨论】:

      【解决方案2】:

      您可能会发现您不需要为本地开发工作运行 Ant 构建。您应该让 Eclipse 负责编译代码并部署到本地 Tomcat 实例。保存 Ant 构建以供部署到共享开发环境时使用。

      当然,您需要调用一些东西来运行代码生成。但我猜你不需要经常这样做。您可以创建一个 Eclipse 启动配置来运行特定的 Ant 任务以生成代码并将其添加到您的收藏夹菜单中。需要时手动调用它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-23
        • 1970-01-01
        • 2011-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-10
        相关资源
        最近更新 更多