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

2022-09-02 21:09:10

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

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

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

这在大多数情况下都有效。但是,我有时会在对话框中收到以下错误消息:

生成过程中发生错误。
在项目“MyProjectName”上运行构建器“集成外部工具构建器”时出错。
变量引用空选择:${project_path}
变量引用空选择:${project_path}

当 Eclipse 决定构建项目时,似乎会发生这种情况,而在包资源管理器中未选择该项目的资源。我可以通过在项目中创建一个虚拟文件,删除 Eclipse 外部的文件,在 Eclipse 中选择它并按 .Eclipse 会注意到该文件不再存在,将其从包资源管理器中删除(因此不再选择任何内容),然后生成项目,给出错误消息。F5

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

那么我该怎么做

  • 以不同的方式引用构建.xml文件,使问题消失,或者
  • 解决问题,或
  • 是否显示此特定错误的错误对话框?

任何帮助将不胜感激。我使用的是Eclipse 3.7(Indigo)。


答案 1

显然,它在翻译对变量(${project_path})的引用时遇到了问题...对变量 (${workspace_loc}) 的引用。

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

${build_project:/build.xml}

我希望它有帮助。


答案 2

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

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

  1. 将完整路径放入 xml 文件
  2. 在启动外部工具之前,单击左侧的项目(在“项目资源管理器”视图中),然后按启动按钮。

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

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


推荐