tags:

views:

1933

answers:

4

When I copy an Eclipse project directory, it contains the .classpath and .project files so that when I take that same directory to another Eclipse instance, I don't have to setup my build path and such (assuming that all the resources are contained in the project, and not external.)

However, this procedure doesn't cause launch profiles to "travel" with the directory.

Is there some other file/directory structure I can "carry around" to another instance of Eclipse that will include my launch profiles?

+4  A: 

Try choosing a shared file location inside your workspace from the "Common" tab of the launch configurations (profiles).

Cagatay
+3  A: 

The .launch xml files (launcher definition) are found in

[eclipse-workspace]\.metadata\.plugins\org.eclipse.debug.core\.launches

Just copy them into your <project>/.settings directory.
Refresh your project, and there you have it: those launcher configuration are available, and you can copy them along the rest of your project files.

Warning: do uncheck the option "Delete configurations when associated resource is deleted" in the Run/Launching/Launch Configuration preference panel: it is common ot soft-delete a project in order to import it back again, to force a reinitialization of the eclipse metadata,... but this option, if checked, will removed your detailed launch parameters!

See also Which eclipse files belong under Version Control, and where are the external tools launch configurations in Eclipse.


Jared adds:

There is no .settings directory in my project directory - I created it and put the .launch file in there, refreshed my project, and it doesn't have any Run profiles. Do you have to mirror the directory structure under .metadata?

Just create the .settings directory (it is actually created when you have project specific settings as illustrated in the question "Maintaining a common set of Eclipse preferences").
Then delete the same .launch file from the .metadata directory.
Then refresh your project and go to the "Run Configurations" Panel: you will see your launch configurations still available, except they are stored where they belong: within your project directory and not buried under an obscure workspace metadata thingy.

VonC
There is no .settings directory in my project directory - I created it and put the .launch file in there, refreshed my project, and it doesn't have any Run profiles. Do you have to mirror the directory structure under .metadata?
Jared
I actually still didn't get this to work....was actually working with two different workspaces, copying the launch file from the .metadata in one into the .settings in the other - couldn't ever get it to appear in the second. If I could get this to work, it's clearly the right way to do it. (the method of setting the profile to save in a shared location on the "common" tab did work for me.)
Jared
It does work in 3.5, but actually the "common" tab is a cleaner way to achieve the same effect, so you have chosen the best approach. Mine is for legacy launchers created under workspace .metadata: you can bring them back into your project that way.
VonC
VonC, I followed your suggestions but had problems when I import the project with a different name. I've even posted a new question: http://stackoverflow.com/questions/3444615/in-eclipse-how-to-have-launch-configurations-relative-to-the-project Maybe you can help me.
neves
+3  A: 

Depending on the amount of moving around you do and the number locations you move to, storing your launch files in an online storage space and then setting up folders at the new locations to synchronize with it may be a viable solution.

Dropbox is a decent online storage system that gives users up to 2 gigabytes of storage.

Here is an example of how you can synchronize folders out side the Dropbox folder curtiousy of LifeHacker.com :

Use either the JUNCTION utility from Sysinternals, or the MKLINK command built in to Windows Vista and Server 2008, for example:

junction "C:\Documents and Settings\User\My Documents\My Dropbox\DesiredFolder" "C:\Path\To\DesiredFolder" mklink /D "C:\Users\Steve\Documents\Dropbox\DesiredFolder" "C:\Path\To\DesiredFolder"

Or, if you prefer a GUI, install Link Shell Extension.

[eclipse-workspace].metadata.plugins\org.eclipse.debug.core.launches would be the DesiredFolder.

You could also use SyncToy to echo changes from another folder to your Dropbox folder. This keeps 2 copies on disk though.

On OS X or Linux, try the following:

Use the ln command, for example:

ln -s /path/to/desired-folder ~/Dropbox/desired-folder

This works with files too:

ln -s /path/to/desired-file ~/Dropbox/desired-file

Another easy way to do this with Terminal is type the ln -s part, then from Finder drag the folder/file that you want into the Terminal window then drag the Dropbox folder and hit return.

Note that an Alias file or folder does not work.

Another solution could be to keep your launch files in an svn repository. Search for How to run Eclipse launch configurations programmatically? on this site. Sorry can only post one url so I used it on Dropbox.

MKam
+1 for ingenious use of Dropbox (my favorite new app of the year.) I've got all my stuff under CM, so no need for me...but smart nonetheless.
Jared
+1  A: 

I have had good use of creating a /launch folder, and then setting the launch configuration to be "Shared file:" (the Commons panel) to the above mentioned launch folder.

The resulting launch file can be checked into e.g. CVS and be pulled into a fresh workspace.

Thorbjørn Ravn Andersen