Java 将Ant builder集成到Eclipse中:错误“;变量引用空选择“;
我在EclipseJDT项目中有一些Ant任务,我希望在每次编译之前执行这些任务,因此我在EclipseBuilder配置中添加了一个Ant构建器。作为构建文件的位置,我输入Java 将Ant builder集成到Eclipse中:错误“;变量引用空选择“;,java,eclipse,ant,Java,Eclipse,Ant,我在EclipseJDT项目中有一些Ant任务,我希望在每次编译之前执行这些任务,因此我在EclipseBuilder配置中添加了一个Ant构建器。作为构建文件的位置,我输入 ${workspace_loc:${project_path}/build.xml} 我不想在这里有任何绝对路径或项目名称。Eclipse配置是存储库的一部分,其他用户使用不同的文件系统布局和可能不同的Eclipse项目名称来检查这一点。例如,我的Eclipse工作区中通常有同一项目的多个工作副本,当然每个副本都有不同的
${workspace_loc:${project_path}/build.xml}
我不想在这里有任何绝对路径或项目名称。Eclipse配置是存储库的一部分,其他用户使用不同的文件系统布局和可能不同的Eclipse项目名称来检查这一点。例如,我的Eclipse工作区中通常有同一项目的多个工作副本,当然每个副本都有不同的项目名称
这在大多数情况下都有效。但是,我有时会在对话框中收到以下错误消息:
生成过程中出现错误。在项目“MyProjectName”上运行生成器“集成外部工具生成器”时出错。
变量引用空选择:${project\u path}
变量引用空选择:${project\u path} 当Eclipse在PackageExplorer中没有选择任何项目资源的情况下决定构建项目时,似乎会发生这种情况。我可以通过在项目中创建一个虚拟文件、在Eclipse外部删除该文件、在Eclipse中选择它并按F5来复制它。Eclipse将注意到该文件不再存在,将其从PackageExplorer中删除(因此不再选择任何内容),然后生成项目,并给出错误消息 虽然每次编译都运行Ant任务并不是很重要,但我不希望有这样一个会让用户感到困惑的错误消息框 那我怎么办
- 以不同的方式引用build.xml文件,以解决问题,或者
- 解决问题,或者
- 是否抑制此特定错误的错误对话框
任何帮助都将不胜感激。我使用的是Eclipse3.7(Indigo)。显然,它在转换对内部变量(${project\u path})的引用时遇到问题。。。对变量(${workspace\u loc})的引用 您可以改用${build\u project}变量
${build_project:/build.xml}
我希望这会有所帮助。您在Eclipse的UI中遇到了一些不便。逻辑告诉您,当您打开一个项目时,应该填充与打开的项目相关的变量。 但它们不是,因为由于一个bug或其他原因,在焦点转移到其他地方后,代码杀死了它们 因此,作为一种解决方法,您可以:
顺便说一句,我认为
${workspace\u loc}${project\u path}/build.xml
没问题。谢谢你的回答,不幸的是它没有帮助。使用${project\u loc:/build.xml}
时,每个构建都会出现错误消息,因此路径似乎根本不正确。好的,我签出了它,该路径对我有效:${workspace\u loc}/${project\u path}/build.xml抱歉,它对我无效。然而,您使用其他变量的想法非常好,我找到了build\u项目
变量,这似乎正是我要找的(不知道为什么我现在才错过它)。使用${build\u project:/build.xml}
它可以正常工作。请更新您的答案,以便我可以接受它。此解决方案将此问题更改为“在项目“xyz”上运行生成器“CDT builder”时出错……资源“/xyz/Debug/gen”不存在”。但如果在包资源管理器上选择了该项目,此解决方案仍能正常工作。对于记录,通过将“生成器-编辑配置-刷新:”从“包含所选资源的项目”更改为“特定资源”->“选择列表上的项目文件夹”,解决了此问题,尽管这些选项似乎是等效的。感谢您的回答。不幸的是,这对我没有帮助,因为(正如我所说)我不能使用完整路径(文件在存储库中),这不是关于手动启动工具,而是关于(自动)项目构建,所以Eclipse决定何时执行此操作,而不是我。然而,来自EFT的答案是正确的并且有效的,因此不需要采取变通办法。这里的步骤2为我解决了这个问题。出于某种原因,如果焦点在编辑器视图中,则调试时不会填充${project\u loc}。启动前立即在project Explorer视图中单击项目,修复了建议的问题。谢谢直到2015年,任何人都无法解决此问题:-(当我更改代码后想要重新运行失败的单元测试时,我总是遇到这种问题。@Thomas:同意。我使用${project\u loc}在启动配置中,作为VM命令行参数的一部分。启动配置明确分配给eclipse项目。但是,当project explorer中的另一个项目具有焦点时,启动配置时会出现错误,并且在正确的项目具有焦点时会工作。这并不是人们所期望的