How to keep Netbeans from automatically copying configuration files to private folder? - netbeans

In Netbeans it is possible to create specific run configurations (main class, parameters) through the "Project Properties"->"Run" settings.
Such configuration files are then stored in the nbproject/configs folder.
Now, whenever I open and save the project properties, this configuration is "copied" to nbproject/private/configs.
Can I keep Netbeans from creating these private configuration files?
The problem is that the files are not copied exactly. If my original config looks like:
main.class=[myPackage].MyMain
arg1=SomeValue
arg2=SomeOtherValue
application.args=${arg1} ${arg2}
Then the "copied" file only contains the single line
application.args=${arg1} ${arg2}
which obviously cannot not work, since my main class then gets those strings literally.

Related

Specify Eclipse CDT Default Launch Config

PAIN POINT:
Using Eclipse CDT - the launch configs I need are rather complex (little settings that are non-default values and other misc things) too many little things to remember, and easy to skip then stuff does not work. I want to be able to semi-automate this process in project makefiles.
Background:
I have multiple projects, not stored in the workspace (my users "import the project"). In some cases projects are some what generated (they are external makefile projects.
Requirement: Specifically depending on what build configuration is required the launch config needs to change/tweak, the external Makefile can do that, or I can create one launch file for each config. Or I can pre-populate them when I create the project
[example is normal development, debug/release but with unit-test variations]
The user might tweak the settings of course and want to save them.
Requirement: So that the launch files "travel with the project" - I want to check the into GIT, thus I want the .launch files kept in the same directory as the .project and .cproject files - as described here (thus they can be checked in and things are "self contained)
Store run configuration with project in Eclipse
PROBLEMS and QUESTIONS
1) Given existing launch configurations files (.launch files) in the ".project" directory, how can I browse/select from the list of existing ones that Eclipse does seem to previously know about.
{Example: Create a launch config called "FOO", copy this to "BAR", edit the BAR config file, replacing internal occurrences of FOO with BAR)
The BROWSE button in the "common" tab lets me select a directory to save but does not allow me to select an existing file
2) How can I tell eclipse File (X) is the default launch configuration for this project, or config(X) uses file(A) and config(Y) uses file (B)
3) Is there a way within the ".project" or ".config" or ".cproject" files to specify where to look for launch configurations, where to offer them?
4) Sure would be nice to have a file (or place in the .project, or .cproject) file that says: Launch configs for this project are in this directory - offer the user a list based on the files present in that directory
bottom line:
I'm sort of stuck - I can create launch files "correctly" with all required settings but I seem to have no means to tell Eclipse to use select/use them.
No amount of automation here seems to work, and I end up having to go back to manually creating and humanly forgetting settings in the project files.
Places I've looked:
Sort of the issue but not exactly
https://superuser.com/questions/521537/remove-launch-from-run-debug-drop-down-in-eclipse
Below - ARM describes the IMPORT process, but in my case all ".launch" files are grayed out and not selectable I don't know why and that is a different problem
I'd like to not make this a multi-step process - also see above about removing stale launch configs - you end up with too many launch configs in the history.
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0446h/CJADBBIA.html
There are numerous other places but all seem to be "click here" or "use this menu item" and not addressing the external file issue.

How does Eclipse persist created/duplicated launch-configurations? DialogSettings?

I was wondering how Eclipse persists created or duplicated launch-configurations.
(When I restart Eclipse after creating or duplicating a launch-configuration, the configuration is still there)
Does Eclipse use the DialogSettings to store this user-created information?
Thanks for any answer!
All launches however they are created are normally stored in the workspace .metadata/.plugins/org.eclipse.debug.core/.launches directory in a xxx.launch file.
The format of the file does look similar to the DialogSettings file but in fact it is created by different code in org.eclipse.debug.internal.core.LaunchConfigurationInfo.
You normally access launches through the various ILaunchXXXXX interfaces, ILaunchManager being the main interface.
Depending if your launch is a Local file or a Shared file (see the launch configuration tab "Common").
If it is a Local file the configuration is stored in your eclipse workspace:
.metadata/.plugins/org.eclipse.debug.core/.launches
If it is a Shared file it is stored in the bundle/path of your workspace bundles, as .launch file.
If you duplicate a launch it is stored next to the original, e.g. in the .launches directory for Local file or in your bundle/path for Shared files.

Emacs load extra configuration by command

I am a Emacs user, and have a long configuration file (.emacs) by default. But now I need to add some extra configuration for some specific project. I wonder how I could archive it.
To be more specific:
I have a default .emacs file in the ~/ folder. Now for a specific project under ~/project/, I have a specific Makefile under the project folder, I hope I could press one a default compile key to make it.
I prefer to write another small configuration file in the project folder, and manually load it when I am working in this project. But I don't know how to make it work.
Thanks!

How to have different file links to an Eclipse project (not importing it)?

I noticed when I import a file, the file is copied to the work space, but can I just create a file link in a Eclipse project? So when I modify the files in Eclipse, the files in the linked location is modified. In this way, I can version control the files using SVN. And I don't need to copy the modified files back to its dedicated directory when deployment.
The following is a more detailed description of my problem:
I have a cgi application located and runs in apache. The app runs with diff configuration files for different 'projects' which is more like showing different dataset with its corresponding configuration file. My task is to write the configurations files which will require some perl callback functions, css files and images. All these files have their own dedicated directories located in different places in the company server which i have not much control with.. So far, I just use command line to modify files and keeping old copies for version control. If I can do something like my above description, I will be able to have a central place to work on and do SVN. Or do you have a better idea how I should set up my work environment?
Thanks heaps in advance.
Yes you can,
File -> New File -> Advanced (at the bottom) -> Link to file in the file system
Manu
I have figured out a way to conveniently to version control files from different places and can deploy them to the correct directories after modified. It's ....... using..... the ANT build file... I just have all files imported to a single project and use an ANT build to distribute them back to their corresponding destination.
Use svn:external http://svnbook.red-bean.com/en/1.0/ch07s03.html
One drawback though, you have to update your other projects once you commit a shared files.

How do I associate my custom ANT builder with the project instead of the Eclipse workspace?

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...
When I create the .externalToolBuilders directory under .settings and copy the launcher/builder there, I get this:
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.
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.