Development in IntelliJ IDEA starts with a project. Projects help you organize your code and resources in a single unit that is easy to store and share. In simple words, a project is a directory that keeps everything that makes up your application. A typical project normally has a set of settings and one or several modules.
A project in IntelliJ IDEA is a shell that keeps modules together, provides dependencies between them, and stores their shared configuration.
A module is composed of the .iml file that keeps internal representation of module settings and the so-called content root, which stores your source code, resources, tests, and so on.
Project, module, and global settings
There are 3 types of settings in IntelliJ IDEA: module, project, and global settings.
- Module settings
These settings apply only to one module and are stored in the .iml file. A module can have an SDK and a language level that are different from those configured for a project, and their own libraries. They can also carry a specific technology or a framework.
For more information, refer to Module structure settings.
- Project settings
These settings apply only to the current project. They are stored together with other project files in the .idea directory in the .xml format. For example, projects keep VCS settings, SDKs, code style and spellchecker settings, compiler output, libraries that are available for all modules within a project.
- Global settings
Global settings apply to all projects of a specific installation of IntelliJ IDEA. Such settings include IDE appearance (for example, themes and color schemes), the set of installed and enabled plugins, debugger settings, global inspection profiles, and much more.
For more information, refer to IDE configuration.