Module implementation feedback

Hello IDEA Developers,

I really think the current implementation (build 977) of modules is confusing. Using modules with the existing notion of project and application level libraries is mixing new and old paradigms. It's not working very well.

My recommendation would be that you go forward with modules and drop project/application libraries. Modules are the way to go. Modules should contain source code and resources and optionally share those with other modules. I like the fact that there would special modules like Web and EJB modules. This is what other IDEs are doing that have been in the J2EE space for sometime.

Requirements:

1. Allow modules to export (make visible) their *.zip and *.jar files to other modules which are dependent.
- This allows resource only modules to be developed

2. Remove the use of "Project" and "Application" libraries.
- Mostly an old way of thinking about dependencies
- Modules take care of this now and are cleaner way of dealing with dependencies
- Modules provide one way to think of code and resources - much cleaner

3. Allow *.iml files to live in the module directory they represent.
- Often IDEA modules are the same as CVS modules
- Want to check *.iml file into CVS with the module contents
- Better abstraction for "jdkName" variable, ie. use a IDEA variable $JDK_NAME
- Multiple IDEA projects can then reference the same *.iml file

Question/Comment:

4. Why must there be a module with the same name as the project. Is this still a bug?
- Tracker issue 19659 (still open)
- Delete it and it comes back
- Must set compiler and output path or project cannot compile, even though it has no source

I have submitted tracker items on #1 and #3 but I wanted to take the time to put these thoughts together in one coherent message. IDEA is a superb tool when working with code. However, a tool like Eclipse is leading in their use of modules (what they call projects). This is an especially strong feature in Eclipse. IDEA needs a clean module implementation to catchup.

Tim

7 comments
Comment actions Permalink

1. Allow modules to export (make visible) their *.zip and *.jar files to

other modules which are dependent.

- This allows resource only modules to be developed


We'll defenitely allow this but not in Aurora.

>

2. Remove the use of "Project" and "Application" libraries.
- Mostly an old way of thinking about dependencies
- Modules take care of this now and are cleaner way of dealing with

dependencies

- Modules provide one way to think of code and resources - much cleaner


We'll think about this suggestion.

>

3. Allow *.iml files to live in the module directory they represent.


In fact module files can be anywhere just the current UI does not allow this
(as well as it does not allow to import existing modules). This will be
changed in the next build.

>

Question/Comment:

>

4. Why must there be a module with the same name as the project. Is this

still a bug?

- Tracker issue 19659 (still open)
- Delete it and it comes back
- Must set compiler and output path or project cannot compile, even

though it has no source

Must be bugs.

--
Valentin Kipiatkov
JetBrains, Inc
http://www.intellij.com
"Develop with pleasure!"


"Tim" <no_mail@jetbrains.com> wrote in message
news:615289.1069008448486.JavaMail.itn@is.intellij.net...

Hello IDEA Developers,

>

I really think the current implementation (build 977) of modules is

confusing. Using modules with the existing notion of project and application
level libraries is mixing new and old paradigms. It's not working very well.
>

My recommendation would be that you go forward with modules and drop

project/application libraries. Modules are the way to go. Modules should
contain source code and resources and optionally share those with other
modules. I like the fact that there would special modules like Web and EJB
modules. This is what other IDEs are doing that have been in the J2EE space
for sometime.
>

Requirements:

>

1. Allow modules to export (make visible) their *.zip and *.jar files to

other modules which are dependent.

- This allows resource only modules to be developed

>

2. Remove the use of "Project" and "Application" libraries.
- Mostly an old way of thinking about dependencies
- Modules take care of this now and are cleaner way of dealing with

dependencies

- Modules provide one way to think of code and resources - much cleaner

>

3. Allow *.iml files to live in the module directory they represent.
- Often IDEA modules are the same as CVS modules
- Want to check *.iml file into CVS with the module contents
- Better abstraction for "jdkName" variable, ie. use a IDEA variable

$JDK_NAME

- Multiple IDEA projects can then reference the same *.iml file

>

Question/Comment:

>

4. Why must there be a module with the same name as the project. Is this

still a bug?

- Tracker issue 19659 (still open)
- Delete it and it comes back
- Must set compiler and output path or project cannot compile, even

though it has no source
>

I have submitted tracker items on #1 and #3 but I wanted to take the time

to put these thoughts together in one coherent message. IDEA is a superb
tool when working with code. However, a tool like Eclipse is leading in
their use of modules (what they call projects). This is an especially strong
feature in Eclipse. IDEA needs a clean module implementation to catchup.
>

Tim

>


0
Comment actions Permalink

Hello Valentin,

Thanks for considering the changes. I'm looking forward to the next build!

Can you give us a way to set the default properties for a module? It would be very helpful to have the 1) JDK and 2) output directory set automatically when creating a module.

Tim

0
Comment actions Permalink

Have you tried setting the default project properties (it's under the File
menu)?

Vil.

Tim wrote:

Hello Valentin,

Thanks for considering the changes. I'm looking forward to the next build!

Can you give us a way to set the default properties for a module? It would be very helpful to have the 1) JDK and 2) output directory set automatically when creating a module.

Tim


--
Vilya Harvey
vilya.harvey@digitalsteps.com / digital steps /
(W) +44 (0)1483 469 480
(M) +44 (0)7816 678 457 http://www.digitalsteps.com/

0
Comment actions Permalink

Vilya Harvey wrote:

Have you tried setting the default project properties (it's under the
File menu)?

>
Bug still open :
http://www.intellij.net/tracker/idea/viewSCR?publicId=15110

Planned for cure by the new project wizard and revamping :
http://www.intellij.net/tracker/idea/viewSCR?publicId=15906

Alain


Tim wrote:

>
>> Can you give us a way to set the default properties for a module? It
>> would be very helpful to have the 1) JDK and 2) output directory set
>> automatically when creating a module.
>

0
Comment actions Permalink

Can you give us a way to set the default properties for a module? It would

be very helpful to have the 1) JDK and 2) output directory set automatically
when creating a module.

There will be JDK set for project and by default all modules will use it. A
particular module will be able to specify its own JDK if necessary.
Didn't think about per-project output folder but this seems to make sense.
Will consider this.

--
Valentin Kipiatkov
JetBrains, Inc
http://www.intellij.com
"Develop with pleasure!"


"Tim" <no_mail@jetbrains.com> wrote in message
news:14404563.1069120588464.JavaMail.itn@is.intellij.net...

Hello Valentin,

>

Thanks for considering the changes. I'm looking forward to the next build!

>

Can you give us a way to set the default properties for a module? It would

be very helpful to have the 1) JDK and 2) output directory set automatically
when creating a module.
>

Tim

>


0
Comment actions Permalink

Thanks. It's painful to set the output folder on a per modules basis. I have 20 modules right now (and growing).

I've resorted to using an XSL to search and replace values in the *.iml files right now but I wouldn't expect many people to do that.

If you could squeeze this in before you release 4.0, that would be great.

0
Comment actions Permalink

Can you give us a way to set the default properties for a module? It would be very helpful to have the 1) JDK and 2) output directory set automatically when creating a module.


+1

0

Please sign in to leave a comment.