Here's some information on what is planned to change in a way projects are
managed in the next version of IDEA. Your opinions are welcome.
A project will consist of a set of modules (in simple cases for java apps
there will usually be only one module). Each module will have its own set
of working paths, libraries, classpath settings, etc. Basically a module is
what current IDEA project is, but with a few additions.
Modules can be of different types, where its type defines various behavioral
aspects of the module. For example modules of type EJB will have its own
logic of how they are compiled and validation is performed. Also various UI
editors may depend on the module type the file is coming from. For example
ejb-jar.xml from an EJB module will open a DD Editor where from a java
module a simple XML editor.
The following types of modules will be supported:
- EAR Module
- EJB Module
- Web Module
There will be a possibility to specify dependencies between modules that are
considered when building the project.
For simplicity we will not clutter the UI with a few things like dependency
management and the like in case when there's only one module in the project.
Another issue here is that module descriptions are stored as separate
.iml files and can be imported into any number projects (while
projects are ]]>.ipr files containing only project-wide settings
a references to modules it contains). There will be a way to create a new
module for the project or add an existing one.
Now regarding paths. A module will have a set of non-overlapping roots
(most likely just one for most projects, but any number is allowed). Any
subnode of this root may be assigned as a source path or an exclude path.
This will be the only way to specify paths.
All this also eliminates the need for multiple output paths. We are also
planning to introduce a special notion of test source paths containing test
cases which may get compiled to a different location. We think it's better
to introduce this special concept instead of having a generic and
Please let us know what you think, since it touches quite a few things in a
way you work with the tool.