How to share IntelliJ IDEA settings across a team
A team agrees on a code style, on reformatting at every save, on the JDK a project builds with. Then a developer joins, an IDE is reinstalled, a repository is cloned again — and each IntelliJ IDEA goes back to its own defaults. Here is what the IDE offers to share settings, what each option carries, and where it stops.
What a team wants to share
Mostly project settings, the same on every workstation:
- the code style scheme;
- the actions on save: reformat code, optimize imports;
- the project JDK, and the Maven
settings.xmla build reads; - and all of it on every repository the team works on, not on one.
A shared .idea folder
IntelliJ IDEA stores the settings of a project as XML files in its .idea folder. Part of them is meant to be shared: the code style, for one, can be committed with the code and reaches everyone who clones it. The rest is personal and lives in workspace.xml, which IntelliJ IDEA adds to the ignore list as soon as version control is enabled.
Where it stops:
- The actions on save and the Maven settings,
settings.xmland local repository included, are stored inworkspace.xml: a committed.ideafolder carries neither. - The project JDK is recorded under the name each workstation gave it. A colleague whose JDK bears another name has to pick it again.
- Each repository has its own folder. A change to the team’s style is a commit in every one of them, and those files merge like any other, conflicts included.
- Nothing puts a setting back. Changed on one workstation, it stays changed there, or reaches the repository in a commit nobody meant to make.
Settings Repository
Settings Repository synchronized IDE settings through a Git repository. A team could point every IDE at the same one, and add read-only sources: repositories of templates or schemes applied as they are, never overwritten.
JetBrains has deprecated it. The plugin is no longer bundled with IntelliJ IDEA, though it is still available on the JetBrains Marketplace, and JetBrains recommends Backup and Sync in its place. It is not a base to build a team’s setup on today.
Backup and Sync
Backup and Sync keeps your settings under your JetBrains Account and applies them in every IDE where you log in with that account: the look of the IDE, code style, live templates, tool settings and the plugins you enable.
It is personal by design. Settings follow an account, not a team: two developers on two accounts keep two sets of settings, and nothing makes them the same. It is the right tool to carry your own IDE from one machine to the next, not to align a team.
Where the three stop
Each covers a slice. The .idea folder carries some project settings, one repository at a time; Backup and Sync carries one person’s settings; Settings Repository is on its way out. None of them holds one set of settings for the whole team, applies it in every IDE and puts it back when it moves.
Sharing settings with Konfigomatik
Konfigomatik is a JetBrains plugin and a dashboard. An administrator sets the team’s settings once on the dashboard, for a Git repository or a group of repositories, and the plugin applies them in every developer’s IDE.
- Code style, actions on save (reformat code, optimize imports, rearrange), Prettier, annotation processing, the Maven
settings.xmland local repository, the project JDK and the Android SDK. - Tied to the Git repository, not to the IDE project: the repository of the file you have open decides, so one window holding several repositories gets the right settings for each.
- Applied when the project opens, when you switch to a file of another repository, or on Refresh from Server. A governed setting that moves is put back.
- The JDK is downloaded on each workstation, with your company’s certificates, and set as the project SDK.
- What a developer changes by hand is kept as a draft. Published as a proposal, it reaches the team once an administrator approves it.
No .idea folder to share, and nothing left for each IDE to remember.
Get started
The documentation walks through it in order: what Konfigomatik is, creating your organization account, setting it up, then installing the plugin in IntelliJ IDEA.