Bug 205380 - [buildpath] Can define library and source folder dependencies for a source folder within a project
Summary: [buildpath] Can define library and source folder dependencies for a source fo...
Status: NEW
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.4   Edit
Hardware: PC Windows XP
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: JDT-Core-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 125330 131531 (view as bug list)
Depends on:
Blocks:
 
Reported: 2007-10-03 21:29 EDT by David Keeley CLA
Modified: 2011-03-29 09:08 EDT (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Keeley CLA 2007-10-03 21:29:51 EDT
Build ID: M20070921-1145

Steps To Reproduce:
A feature request rather than a bug, but I couldn't find an better place to raise it.

IntelliJ IDEA you can have several 'modules' within a project, each with their own source folder and library dependencies defined.  We have some very large projects with quite a number of source folders (that get compiled to their own output folder and packaged differently).  But the project does not suit being split up into many projects as the code is tightly coupled and managed as one (mostly legacy driving this, but also intrinsic business needs).  Development tasks always span many of these source folders and it is tedious to try work across many projects.  Nor do we wish to have to checkout each part of the applicaion seperately as if we broke the source modules into separate projects.  There are other slightly releated projects that we have open in the same workspace that do warrent being separate projects.

We are a very large organisation and looking to IntejiJ IDEA for the simple solution it offers.  So I wondered if the Eclipse project would entertain this enhancement.

As we have different output folders for most source folders, this may help stop Eclipse doing excessive rebuilds of the entire workspace (if it knows the dependencies between source folders then surely it does not need to do an entire workspace rebuild each time we save a file in one source folder).  So there might be a bonus outcome.


More information:
Comment 1 Kevin McGuire CLA 2007-10-03 23:17:14 EDT
Features requests are logged as bugs, so this was the right place.

We support multiple source folders but they don't manage their own dependencies; those exist at the project level.  This is a fairly substantial architectural choice. It's possible it could be enhanced as you suggested but not any time soon.

As for rebuild, a dependency tree is calculated and only those which could be affected are rebuilt.  We do not rebuild the entire workspace for every change.

Moving to JDT to see if they have any suggestions with respect to project organization.
Comment 2 David Keeley CLA 2007-10-04 15:14:11 EDT
> We support multiple source folders but they don't manage their own
> dependencies; those exist at the project level.  This is a fairly substantial
> architectural choice. It's possible it could be enhanced as you suggested but
> not any time soon.

Right, I figured it was pretty major.  When you look at the build path configuration it seems tantalisingly simple to beable to define the dependencies in that dialog :)  How would I log this as a longer term feature request?

> As for rebuild, a dependency tree is calculated and only those which could be
> affected are rebuilt.  We do not rebuild the entire workspace for every change.
> Moving to JDT to see if they have any suggestions with respect to project
> organization.

Sure, I'd like to understand this one better.  We have dozens of frustrated developers that sit watching 'rebuilding workspace' for large portions of their day.  Sometimes it just triggers when you save a single line change in a java file , just a string literal or something benign.  Then off it goes rebuilding thousands of unrelated classes before you are able to do anything more.  I will try and create a more specific and isolated example, but the general problem is something we only observe is large projects (where it really hurts) and we have observed the behavious consistently in Eclipse 3.0 - Eclipse 3.3.1.

Comment 3 Scot Thomas CLA 2007-10-04 16:03:26 EDT
About the over-zealous rebuilding workspace;
What happens is that (rebuild automatically) it is somehow marked incomplete.  This means that when you tend to change anything, even a XML file, ANT script, it
then proceeds to wipe out the output folder and start again - which is can be 15+ minutes on some of the developers machines.

I have yet to work out why.  It comes down to some classes not compiling (but no error message).  This behavior also becomes visible when class y fails saying class x does not exist even though it is in the same folder.

Workarounds include wiping out classes content, and deleting these problem classes.  Letting it rebuild, then undeleting said problem classes which then build ok.  At first I was thinking it some kind of circular references issue, but I cannot find it.

I'll try and add more detail to make this bug report more useful :-)
Comment 4 Jerome Lanneluc CLA 2007-10-05 05:31:29 EDT
David, Scott, for the 'rebuilding entire workspace' problem, I would suggest to enter a separate bug report. We heard of such behavior, but we never get a good bug report. I understand it is frustrating and we would like to fix this. So let's start to investigate this problem in a new bug report (since this one is about a separate issue: defining library and source folder dependencies for a source folder).
Comment 5 Philipe Mulet CLA 2008-07-09 10:02:35 EDT
also see 131531
Comment 6 Philipe Mulet CLA 2008-07-09 10:03:24 EDT
*** Bug 131531 has been marked as a duplicate of this bug. ***
Comment 7 Jerome Lanneluc CLA 2008-08-25 07:44:49 EDT
*** Bug 125330 has been marked as a duplicate of this bug. ***
Comment 8 Jerome Lanneluc CLA 2008-09-11 10:26:37 EDT
To be investigated for M4
Comment 9 Jerome Lanneluc CLA 2008-09-25 11:48:25 EDT
Planning discussions lead to remove this item from the 3.5 plan.