IDEA - Module (iml)

Card Puncher Data Processing


A module is a discrete unit of functionality which you can compile, run, test and debug independently.

Modules contain everything that is required for their specific tasks:

  • source code,
  • build scripts,
  • unit tests,
  • deployment descriptors,
  • and documentation.

However, modules exist and are functional only in the context of a project. Depending on the logical and functional requirements to the project, you can create:

  • a single-module
  • or a multi-module project.


File > Project Structure > Module

Idea Module Configuration

Storage (iml file)

Configuration information for a module is stored in a .iml module file. By default, such a file is located in the module's content root folder.

Development teams, normally, share the .iml module files through version control.

The information about modules the project includes is stored in %module_name%.iml files. Module files are created for each module.

Directory Structure

Content root is a folder that contains all the files that make up your module.

Idea Folder Category

Folders within a content root can be assigned to the following categories:

  • Source roots (content must be compiled)
  • Generated source roots (the generated source roots are not suggested as target folders on certain wizard)
  • Test source roots (code intended for testing)
  • Generated test source roots
  • Resource roots (only in Java modules) During the build process, all the contents of the resource folders are copied to the output folder as is.
  • Test resource roots
  • Excluded roots (IDEA will Ignore)




A facet represents certain configuration, specific for a particular framework/technology, associated with a moduel. A module can have multiple facets.


Module type Description
Java Module Encapsulates core functionality for building Java applications. The functionality of a Java module can be expanded by adding facets.
Web Module Provides facilities for developing web applications using programming languages other than Java, for example, PHP, or JavaScript, or markup languages.
Plugin Module Facilitates development of IntelliJ IDEA plugins. Supports IntelliJ IDEA SDK configuration and run configurations for running a dedicated IntelliJ IDEA instance for plugin debugging.
J2ME Module Provides facilities for developing J2ME mobile applications, including support for various Mobile JDK and J2ME-oriented run configurations.
Flash Module This module type is intended for developing Adobe Flash platform-targeted content (applications and libraries for web (Flash Player), desktop (Adobe AIR) and mobile devices (AIR mobile)).
Android Module Encapsulates core functionality for developing Android applications.
Maven Module Provides facilities for managing Maven projects, executing Maven goals, downloading artifacts.
Grails Application Provides facilities for Grails application development.
Griffon Application Provides facilities for Griffon application development.
The following module types are available provided that the corresponding plugins are downloaded and enabled:
Ruby Module Provides facilities for creating Ruby projects and Rails applications.
Python Module Provides facilities for Python, Django and Google App Engine development.

Documentation / Reference

Discover More
Card Puncher Data Processing
IDEA - Facet (Module Configuration)

A facet represents certain configuration, specific for a particular framework/technology, associated with a module. A module can have multiple facets. E.g. Spring specific configuration is stored in a...
Card Puncher Data Processing
IDEA - Library

IDEA supports three types of libraries: Module Library: the library classes are visible only in this module and the library information is recorded in the module .iml file. Project Library: the library...
Card Puncher Data Processing
IDEA - Maven

For each Maven Module, IntelliJ IDEA creates a pom.xml file.
Card Puncher Data Processing
IDEA - Project

A project encapsulates all your source code, libraries, and build instructions into a single organizational unit. A project defines collections referred to as: modules and libraries. A project...
Idea Sdk

sdk in Idea. Every project uses a Software Development Kit (SDK). Optionally, you can configure individual SDK for each module. The SDK determines which API library is used to build the project. If...
Card Puncher Data Processing
IDEA Plugin Dev - Module ( API )

Working with Modules in a plugin API The IntelliJ Platform provides a number of Java classes and interfaces you can use to work with modules within the project and core API Class Class Type API...
Card Puncher Data Processing
IDEA Plugin Dev - Module level components

Module level components Interface: Optionally, a module level component’s implementation class may implement the ModuleComponent interface. Constructor: The constructor of a module level...
Card Puncher Data Processing
IDEA Plugin Dev - Service

Add the appropriate child element ( For the newly added child element, set the following attributes: serviceInterface: specifies the service interface class. serviceImplementation: specifies the...
Idea New Intellij Platform Plugin Project
IDEA Plugin Dev - Setting Up a Development Environment and Creating a Plugin Project

How to configure the environment of development. download the Idea Community edition and install it. The...
Card Puncher Data Processing
Idea - Android

IntelliJ IDEA distinguishes between the following types of Android modules: Module Type Description Gradle Module Create Android applications or libraries that are compiled and built with the Gradle...

Share this page:
Follow us:
Task Runner