Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Integrate Ant builder into Eclipse: Error "Variable references empty selection"

Tags:

java

eclipse

ant

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).

like image 987
Philipp Wendler Avatar asked Oct 17 '11 11:10

Philipp Wendler


2 Answers

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.

like image 77
Efthymis Avatar answered Oct 17 '22 04:10

Efthymis


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.

like image 9
Angel Genchev Avatar answered Oct 17 '22 05:10

Angel Genchev