【问题标题】:Eclipse custom program to build chain -- adding a source fileEclipse自定义程序构建链——添加源文件
【发布时间】:2012-09-23 14:21:35
【问题描述】:

我正在用 Java 开发一个相当大的 Android 软件(使用 Eclipse 和 ADT)。

为了支持我的开发,我制作了一个自己的命令行工具,它执行以下操作:

  1. 加载和处理某些 Java 文件(来自我开发的软件的项目)
  2. new Java 文件输出到我的项目中的某个文件夹(因此也保留输入文件)

命令行工具的作用无关紧要,它的输出只是标准的 Java 代码(即它是一个代码生成器)。

我希望在构建过程中自动调用此命令行工具。换句话说,我希望当我完成手动编码并开始构建过程(例如,通过单击“运行...”)时,会发生以下情况:

  1. 命令行工具已运行
  2. 由命令行工具生成的文件也包含在构建中(即,它们被编译完全就像在 Eclipse 项目中手动添加和编码一样)。

我很确定我必须将此程序作为“程序”添加到项目的 Builder 列表中(参见随附的屏幕截图)。我的问题:

  1. 放在什么位置?应该是第一个吗?
  2. 为了满足上述要求,我还需要做什么? 恐怕如果命令行工具只是将 .java 文件写入文件夹,Eclipse 不会看到新生成的文件(因为它们没有添加到它的项目文件)。

【问题讨论】:

    标签: java android eclipse build-process


    【解决方案1】:

    你走在正确的轨道上,在这些条件下它会正常工作:

    • 您的构建器必须位于顶部,以便它可以在 Java 构建器运行之前修改源文件。
    • 您的 Java 文件必须生成到项目的现有“src”路径之一中。 Java文件没有在项目中注册,所以如果你把一些东西放到项目的源文件夹中,它就会被编译。 xtext 和 xtend 等 Eclipse 工具的工作方式相同。
    • 必须激活构建器的刷新选项。否则工作区不会知道您创建了文件(因为您的程序使用 java.io.File 操作,从而绕过工作区 API 来获取资源)。

    【讨论】:

    • 非常感谢您提供完整且非常有用的信息。控制台程序有没有办法影响整个构建过程的成功?我的意思是,有没有办法导致构建失败(例如,如果我的代码生成器遇到错误),还是完全解耦?
    • Eclipse 构建器不存在整体失败/成功之类的东西。每个构建器都会对资源更改做出反应并尝试对它们做一些事情,而独立于任何其他构建器。尽管如此,您可以轻松生成一些导致编译错误的 Java 代码(例如,将错误消息逐字打印到生成的 Java 文件中)或者您根本不生成任何代码(如果“正常”代码取决于您的代码,则编译将也失败了)。
    猜你喜欢
    • 2019-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-20
    • 2019-12-14
    • 1970-01-01
    • 2018-04-16
    • 1970-01-01
    相关资源
    最近更新 更多