Watch, Follow, &
Connect with Us
Public Report
Report From: JBuilder/Compiler/Dependency Checker    [ Add a report in this area ]  
Report #:  1071   Status: Reported
"Rebuild" command (Project Menu) does not rebuild all classes
Project:  JBuilder Build #:
Version:    6.0 Submitted By:   Mark Richter
Report Type:  Minor failure / Design problem Date Reported:  4/29/2002 10:10:03 AM
Severity:    Commonly encountered problem Last Updated: 5/2/2003 12:58:35 PM
Platform:    All versions Internal Tracking #:  
Resolution: None  Resolved in Build: : None
Duplicate of:  None
Voting and Rating
Overall Rating: (4 Total Ratings)
3.75 out of 5
Total Votes: None
Per the JBuilder 5 help:

"Compiles all .java files within the selected node, regardless of whether their .class files are outdated. Also compiles the imported files upon which the node depends, regardless of whether their .class files are outdated."

However, the rebuild command does not invoke a complete rebuild of the imported files if existing compiled classes are in the target folder(s).  While it is not clear what logic is being applied to the rebuild command, on a project with 700+ classes, rebuilding may compile between a single file that has changed to some seemingly random subset of the total classes (up to roughly 1/2 of the total).

This problem can be worked around (see Workaround), but this involves manual steps, and may prove error prone if the target folders contain classes from other sources, such as would exist when a JBuilder project targets a subset of a larger application, or when 3rd party libraries are contained within the target.

While it may be unreasonable to expect this to change in v5, it is logged here in hopes that v6 will see this behavior corrected (as I don't have JBuilder 6 at this time).
Steps to Reproduce:
A complete rebuild can be accomplished by removing all files and folders in the target path that need to be rebuilt.  Single packages, or trees of packages can be targeted in this manner.

The drawback to this approach is that it is a manual step, prone to error or oversight.


Server Response from: ETNACODE01