tags:

views:

18

answers:

1

I'd like to associate some ANT targets with my project's build in Eclipse.
No problem, I create a custom ANT builder, specify targets to run, all is well.
But then I realize that the builder information is saved in the workspace instead of the project! Why is that, and how do I fix it?

The goal is that anyone who imports the project in a new Eclipse workspace can build it without adding the builder manually. This means that I should have the builder configuration under source control, which means it should belong to the project, not the per-user workspace.
Maybe I'm just missing something?

There is a bit of confusion, it seems, because builders look like launchers, but they are stored in a different directory. Simply creating the .settings dir and copying the xml doesn't help...

alt text

When I create the .externalToolBuilders directory under .settings and copy the launcher/builder there, I get this:

alt text

Solution: I restarted from scratch, deleted the project-specific data in the workspace directory, but left the .settings dir in the project dir. Re-created the builder/launcher, and Eclipse automatically created it in the correct place, and also added it to source control.

A: 

Indeed, your launcher (Run/Debug launchers or External Builders launchers) are saved by default in the workspace.

<workspace>\myProject\.externalToolsBuilder) 

You can move that directory (.externalToolsBuilder) manually in the .settings directory of your project.
And uncheck the option "Delete configurations when associated resource is deleted" as mentioned in this SO answer.

With a full refresh of the project (or even a delete, followed by a reimport), your local version of .externalToolsBuilder should be taken into account.


For the Debug/Run launchers (not your case), you also can (since Eclipse3.4) use one of the Import wizards:

File > Import

type launch configuration, and you can import said configuration directly within your project.

alt text

alt text

VonC
Thanks for the quick answer! Further details above...
Gabor Kulcsar