我有一个Java项目,选择标准Java Builder作为它的唯一构建器.此外,构建配置为自动构建.
我想要了解的是当我向这个项目添加一个ant构建时产生的构建环境(project -> properties -> builders).我所期望的是,每次我对Java源代码进行更改时,Java Builder和我的ant构建都会运行,但似乎我的ant构建运行不正常.  
当我第一次添加ant构建时,它会运行,即我在控制台中看到输出.但是,当我然后对源文件进行更改时,它不会再次运行,即我在控制台中看不到输出.我知道Java Builder仍在运行,因为我的更改已进入日食代码感知,即我可以从其他类引用这些更改等.
注意,如果我手动调用构建,即通过Project -> Build All,ant构建运行,即我再次在控制台中看到输出.    
那么,为什么我添加的蚂蚁构建不会与自动建筑一起运行?注意,我不一定会期望它能够进行增量工作,因为它不是为此而做的,但我认为它会在Java Builder发布时触发吗?我错过了什么吗?
ant 构建器或任何其他构建器都有多种构建项目的方法。当 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 构建器的实现使其仅对完整构建做出反应,而不是增量构建建造。
| 归档时间: | 
 | 
| 查看次数: | 2280 次 | 
| 最近记录: |