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 Aqua 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 Aqua: 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.
- 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 Aqua. 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.