【问题标题】:Adding Builders to Project in Eclipse and Incremental-ness在 Eclipse 和增量中向项目添加构建器
【发布时间】:2011-11-18 01:30:48
【问题描述】:

我有一个 Java 项目,选择标准 Java Builder 作为它的唯一构建器。此外,构建配置为自动构建。

我想了解的是当我向这个项目添加一个 ant 构建时产生的构建环境 (project -> properties -> builders)。我所期望的是,每次我对 Java 源代码进行更改时,Java Builder 和我的 ant 构建都会运行,但我的 ant 构建似乎没有运行。

当我第一次添加 ant 构建时,它会运行,即我在控制台中看到输出。但是,当我随后对源文件进行更改时,它不会再次运行,即我在控制台中看不到输出。我知道 Java Builder 仍在运行,因为我的更改已进入 Eclipse 代码感知,即我可以从其他类等引用这些更改。

注意,如果我手动调用构建,即通过Project -> Build All,ant 构建运行,即我再次在控制台中看到输出。

那么,为什么我添加的 ant 构建不与自动构建一起运行?请注意,我不一定期望它能够进行增量工作,因为它不是为此而设计的,但我会认为它会在 Java Builder 启动时启动?我错过了什么吗?

【问题讨论】:

  • 此链接 (eclipse.org/articles/Article-Builders/builders.html) 似乎表明我的 ant 构建可能正在后台运行,并且输出只是没有进入控制台。它还表明,自动构建和 Build All 构建都是“增量的”,因为构建器将收到更改的增量,它可以增量地应用它的构建任务。 . .但如果是这种情况,我不太明白我的 ant build.xml 将如何访问那个 delta info 。 . .
  • 老兄!!互联网上没有关于此的内容!!我一直在为我写的这个构建器撞墙,但不起作用!!!你找到问题的答案了吗?
  • 没有。你应该支持我的问题,也许它会吸引一些更有知识的 eclipse 人的注意。
  • 顺便说一句,我在 Eclipse 帮助和其他一些网站上阅读了很多关于此的内容,但没有找到答案...

标签: eclipse ant build


【解决方案1】:

ant builder 或任何其他 builder 有多种构建项目的方法。当在 Eclipse 中进行构建时,将调用所有活动构建器的 build(int kind, Map<String, String> args, IProgressMonitor monitor) 方法,但是,有不同类型的构建,任何构建器都会在 build 方法中检查。构建的种类有:

FULL_BUILD
AUTO_BUILD
INCREMENTAL_BUILD
CLEAN_BUILD

这是构建的示例语法:

protected IProject[] build(int kind, Map<String, String> args, IProgressMonitor monitor) throws CoreException {
    if (kind == FULL_BUILD) {
        fullBuild(monitor);
    } else {
        IResourceDelta delta = getDelta(getProject());
        if (delta == null) {
            fullBuild(monitor);
        } else {
            incrementalBuild(delta, monitor);
        }
    }
    return null;
}

如您所见,构建器可以决定对特定类型的构建做出反应,甚至对不同的构建类型采取不同的行动,所以,我的猜测是,实现了 ant 构建器以便它只对完整构建做出反应,而不是增量构建。

【讨论】:

    【解决方案2】:

    您是否将 Ant 构建器配置为在“自动”构建期间运行?为此,请选择构建器的属性,转至 Targets 页面并将Set Targets 用于Auto Build

    我有一个 Ant 构建器,它在我的 Eclipse 项目中运行各种构建(也用于保存已编辑的源文件),我不记得更改任何其他内容。

    【讨论】:

      猜你喜欢
      • 2012-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 2012-07-27
      相关资源
      最近更新 更多