IntelliJ Concepts

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

Internal

Project

https://www.jetbrains.com/help/idea/working-with-projects.html

A project is a directory that keeps everything that makes up the application. A typical project has a set of settings and one or several modules. The project provides a mechanism to express dependencies between modules and stores modules' shared configuration.

.idea Directory

The .idea directory is used by IntelliJ to store project settings metadata, and it is collocated with the project. It lives by default under the project's root. It contains the following file:

User-Specific Settings

workspace.xml

Stores user-specific settings.

tasks.xml

User Dictionaries

Maintained in .idea/dictionaries/username.xml.

shelf

datasources.xml

In IDEA 13 or earlier, datasources.xml contains user passwords.

libraries

All XML files under .idea/libraries will be generated by the Gradle or the Maven project.

gradle.xml

Gradle settings.

vcs.xml

What to Share in a SVC System

These are some recommendations on what to share and what not to share in a SVC system. The article applies to Git, but the rules are generally valid:

Git and IntelliJ IDEA

Project Settings

The project settings apply to the current project. They are stored together with other project files in the .idea directory in an XML format. Project settings are VCS settings, SDKs, code style, spellchecker settings, compiler output, libraries. All these setting are available to all the modules of the project.

TODO:

Module

A module is a logical group of source code and resources within a project.

The module has an .iml file that keeps the internal representation of the module settings. The module is also associated with a module content root directory, which stores the source code, tests and resources. The .iml file and the module content root are not tied, they can exists in different locations on the file system.

.iml File

The .iml file keeps the internal representation of the module settings.

Module Settings

Module settings apply only to one module and they are stored in the module's .iml file.

As part of its settings, a module can have an SDK and a language level that are different from those configured for the enclosing project. A module can also have its own libraries. A module can also carry a specific technology or framework.

TODO: https://www.jetbrains.com/help/idea/configure-modules.html

Grouping Modules

https://www.jetbrains.com/help/idea/creating-and-managing-modules.html#grouping-modules

Settings

There are three type of settings in IntelliJ IDEA: module settings, project settings and global settings.

Global Settings

Global settings apply to all projects of a specific installation of IntelliJ IDEA. Such settings include IDE appearance, themes, color schemes, the set of installed and enabled plugins, debugger settings, global inspection profile.

TODO: https://www.jetbrains.com/help/idea/configuring-project-and-ide-settings.html

Debugging

Tutorial: Java Debugging Deep Dive

Suspending Only One Thread, and Not All

https://www.jetbrains.com/help/idea/using-breakpoints.html#suspend_policy

Right-click on the breakpoint → Suspend → Thread

Optional: Make Default.

Indexing

https://www.jetbrains.com/help/idea/indexing.html

Cache

Compilation cache: /Users/ovidiu/Library/Caches/JetBrains/IntelliJIdea2021.1/compile-server/.

Index