将Ant构建器集成到Eclipse中:错误“变量引用空选择”

我在Eclipse JDT项目中有一些Ant任务,我想在每次编译之前执行它,所以我在我的Eclipse构建器配置中添加了一个Ant构建器。 作为构建文件的位置,我输入了

${workspace_loc:${project_path}/build.xml} 

我不想在这里有任何绝对路径或项目名称。 Eclipse配置是存储库的一部分,其他用户使用不同的文件系统布局和可能不同的Eclipse项目名称来检查它。 例如,我通常在Eclipse工作区中有几个相同项目的工作副本,每个副本当然都有不同的项目名称。

这大部分时间都有效。 但是,我有时会在对话框中收到以下错误消息:

构建期间发生错误。
项目“MyProjectName”上运行构建器“集成外部工具生成器”的错误。
变量引用空选择:$ {project_path}
变量引用空选择:$ {project_path}

这似乎发生在Eclipse决定构建项目时,而在Package Explorer中没有选择项目的资源。 我可以通过在项目中创建一个虚拟文件,删除Eclipse外部的文件,在Eclipse中选择它并按F5来重现它。 Eclipse将注意到该文件不再存在,将其从Package Explorer中删除(因此不再选择任何内容),然后构建项目,并给出错误消息。

虽然为每个编译运行Ant任务并不是那么重要,但我不希望有这样的错误消息框会让用户感到困惑。

那我该怎么办?

  • 以不同的方式引用build.xml文件,以便问题消失,或者
  • 解决问题,或
  • 抑制此特定错误的错误对话框?

任何帮助,将不胜感激。 我正在使用Eclipse 3.7(Indigo)。

显然,它在转换对变量($ {project_path})的引用时存在问题……对变量的引用($ {workspace_loc})。

您可以尝试使用$ {build_project}变量

 ${build_project:/build.xml} 

我希望它有所帮助。

您在Eclipse的UI中遇到了一些不便。 逻辑表明,当您打开项目时,应填充有关已打开项目的变量。 但它们不是,因为由于一个错误或其他原因,代码在焦点转移到其他地方后杀死了它们。

因此,作为一种解决方法,您可以:

  1. 将完整路径放到xml文件中
  2. 在启动外部工具之前, 单击左侧的项目(在Project Explorer视图中),然后按启动按钮。

单击项目(文件夹图标)将填充变量

顺便说一句,我认为${workspace_loc}${project_path}/build.xml是可以的。