Can I commit and share VM options in IntelliJ? - intellij-idea

To execute my application, or run or debug unit tests, I need to enable various VM options, include -javaagent:<aspectjweaver-path> or -Djava.library.path=<some native lib path>
I can see how to change these configurations manually in IntelliJ IDEA under "Edit Configurations..."
What, if anything, do I need to check in to my VCS to share these settings with other members of my team, and ensure they pick them up automatically whenever someone changes them in the VCS?
Alternatively is there a way to set these automatically in IntelliJ without even touching the edit configurations? Especially the aspectjweaver. When I build/test my project from the command line using maven this is all handled for me by specifying argLine arguments to the surefire plugin, but IntelliJ doesn't respect these settings. Perhaps there are alternative plugins that can help me out?

First, you need to share your run configuration. It's simply done by checking the Share box right to the configuration name in the run configuration dialog:
Your run configuration will then be saved to .idea/runConfiguration (or whatever your settings folder name is).
From Jetbrains Web Help:
If this check box is selected, the run/debug configurations become available to the other team members.
The shared run/debug configurations are kept in separate xml files under .idea\runConfigurations folder, while the local run/debug configurations are kept in the .idea\workspace.xml.
This field does not appear for the default run/debug configurations.

Related

Is there a way to fix the used Run/Debug configuration in IntelliJ?

I often switch between running/debugging tests locally in IntelliJ and using remote debugging my server. Therefore I have multiple run/debug configurations (the gradle ones were created automatically):
Whenever I execute a local test like PdfA...en.ttete this profile is selected by default in that combobox. But I want it to stay default on entry Remote...Debugging 5050 so that I can easily run this profile. Is there a fix?
Other solution would be to define a Hotkey for my favourite configuration. But I couldn't find it.

Modify IntelliJ custom properties in plugin tests

I develop plugin for IntelliJ. How can I modify custom properties for my plugin tests?
For example I want to set idea.max.content.load.filesize property to, say, 100MiB
These are system properties, so java.lang.System#setProperty
Depending on the properties you wish to modify, you may be able to use idea.properties, which contains the "default properties used to run IntelliJ IDEA" (per the link you provided). To modify the file, you go to Help > Edit Custom Properties... (see these steps).
For example, I used this approach to address a problem where my machine's security software was blocking plugins that used IntelliJ's default config directory (C:\Users<user>\AppData...).
This is the Windows OS default Application Data directory and is included in the paths scanned by the security software. By moving my idea.properties file to a different directory (c:/development/idea/caches/), not automatically scanned by the security software, my plugins were no longer blocked.
It's a different use case from what you're describing, but may be an approach worth looking into.

IntelliJ and sharing the project files in VCS

I am using IntelliJ and after very long time I was not able to figure out, what IntelliJ specific files should not or should not be in VCS. I have a project which has different running configurations among various commits, so everytime when I checkout the project from different branch, I have to adjust the Running/Debug configurations. Jetbrains does not recommend to put workspace.xml in VCS because it could contain user-specific settings, however this information about Run/Debug configurations IS stored here! It would be 10x smarter to store in IML file (IntelliJ project file). How do you solve this?
In the run configuration dialog (top right corner), there is the "Share" checkbox. If you mark a run configuration as shared, it will be stored in a separate file under .idea and not in workspace.xml, and you'll be able to add it to the version control system normally.

In IntelliJ IDEA, how to copy non-source assets to output folder during build?

I have a project in IntelliJ IDEA, inside that a couple of modules and one of my modules has two build configurations. One of them needs to copy a <projectroot>/tools folder to its out/production/<BuildConfigurationName> folder. Can IDEA somehow automate this?
The accepted answer above is incorrect. IDEA can do this (without ant/gradle) via the artifacts system (accessed via Build menu or project settings). Any one artifact job copies multiple files/folders/build outputs to a chosen location (optionally jarred) and can be set to automatically run on make.
Artifacts can even be chained, i.e. output from one as input to another.
Can IDEA somehow automate this?
Not directly, no. Ultimately IDEA is an IDE and not a build tool. While it can do a lot during a build, it does not have the ability to copy non-source files to an alternate directory, let alone a dynamically named directory.
If you marked the tools directory as a source directory (and none of its contained file types were set in the "Ignore files and folder" setting at the bottom of the "File Types" settings dialog), IDEA would then copy the tools directory to the out directory. But renaming requires a more sophisticated build tool.
Ultimately, the "ideal" or "best practices" solution would be to build your project using a build tool like Maven, Gradle or Ant for which this type of thing would be a snap.
If that is not an option, or for some reason you really want IDEA to do the build, the best thing you could do is to write a simple Ant script to the copy for you. (Or possibly Gradle, I do not have much experience with Gradle yet. Maven could do it, but it'd be a bit cumbersome compared to Ant.) In any Run/Debug configurations, you can define the ant script target to run before or after the IDEA "make" in the Before Launch section. (You can set that as a default for any newly created configurations by configuring it in Defaults on the left). If you run your build manually, you can assign a shortcut to the ant build and then run it and the make in sequence. Alternatively, you could record a Macro (Edit > Macros) to run both in sequence and then (optionally) assign the macro a keyboard shortcut.

IntelliJ: Mapping running/debugging specific configurations to toolbar

Googling, searching this site and random experimentation yielded nothing, so here goes.
I'm working on a project containing different Maven projects where several of them need to run in order for the system to work. (Clients, servers, etc.) Launching them all individually is kind of inconvenient, but as this question suggests, there's no way to group them into a single configuration (nor does the situation seem to have changed since that answer).
Instead, I'm now wondering if it's possible to map running/debugging specific configurations to the toolbar, i.e. have a "Run Project 1" button, a "Debug Project 3-C" button, and so on instead of having to do the three-step process of opening the list, choosing a configuration and clicking run/debug for each needed component.
Does anyone know of a way to accomplish this?
You can't have multiple configurations at the toolbar, but I can suggest a better alternative for running multiple configurations at once.
In IDEA 12 it's possible to run another configuration in the Before launch section. So you just add all the other configurations you want to be started with the current one in Before launch steps, then run single configuration and get all of them launched. Note that you can run Maven goals from the same configuration:
As you've noted, it will not work if the configuration continues to run as it will wait for the command to finish.
I'm afraid there is no easier way to do it right now except probably using the keyboard shortcut for the run popup menu.
Here are the issues you should vote for:
IDEA-94341 Launch Multiple "Run/Debug Configurations" At Once
IDEA-69968 Add option to assign keyboard shortcut to Run/Debug configurations
IDEA-75078 Make it possible to create toolbar action for running specific run configurations