Integrate Ant builder into Eclipse: Error “Variabl

2020-08-09 09:03发布

问题:

I have some Ant tasks in my Eclipse JDT project that I want to execute before each compilation, so I added an Ant builder to my Eclipse builder config. As the location of the build file, I entered

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

I do not want to have any absolute paths, or the project name, here. The Eclipse configuration is part of the repository, and other users check this out with different file-system layouts and possibly different Eclipse project names. For example, I usually have several working copies of the same project in my Eclipse workspace, each of course with a different project name.

This works most of the time. However, I sometimes get the following error message in a dialog box:

Errors occurred during the build.
Errors running builder 'Integrated External Tool Builder' on project 'MyProjectName'.
Variable references empty selection: ${project_path}
Variable references empty selection: ${project_path}

This seems to happen when Eclipse decides to build the project while no resource of the project is selected in the Package Explorer. I can reproduce it by creating a dummy file in the project, deleting the file outside of Eclipse, selecting it in Eclipse and pressing F5. Eclipse will note that the file no longer exists, remove it from the Package Explorer (so nothing is selected anymore) and then build the project, giving the error message.

While it's not really that important that the Ant tasks are run for every compilation, I do not want to have such an error message box which will confuse users.

So how can I

  • reference the build.xml file in a different way such that the problem goes away, or
  • fix the problem, or
  • suppress the error dialog for this particular error?

Any help would be appreciated. I'm using Eclipse 3.7 (Indigo).

回答1:

Obviously, it has problems translating a reference to a variable (${project_path}) inside ... a reference to a variable (${workspace_loc}).

You could try the ${build_project} variable instead

${build_project:/build.xml}

I hope it helps.



回答2:

You suffered some inconvenience in the Eclipse's UI. The logic dictates you that when you have opened a project, the variables regarding the opened project should be populated. But they're not, because due to a bug or other reason, the code killed them after the focus moved elsewhere.

So as a workaround you can:

  1. Put the full path to the xml file
  2. Just before launching your external tool, click on the project on the left (in Project Explorer view), then press the launch button.

Clicking on the project (folder icon) will populate the variables

By the way, I think ${workspace_loc}${project_path}/build.xml is ok.



标签: java eclipse ant