Do you think Eclipse builds too often ? Do you think Eclipse build too much ? At least I do, or maybe I just got tired of seeing 'Building workspace: (12%)' in the status bar. Anyway I decided to see for myself what the heck the builders were doing.
I use JDT and PDE which means there are two builders of interest
To know what these two builders are doing in your running Eclipse instance two things are required
I had the following options set to true in my .options file
###################################################################
# Turn on debug tracing for org.eclipse.jdt.core plugin
org.eclipse.jdt.core/debug=true
# Reports java builder activity : nature of build, built state reading, indictment process
org.eclipse.jdt.core/debug/builder=true
# Reports java builder stats
org.eclipse.jdt.core/debug/builder/stats=true
###################################################################
# Debugging options for the org.eclipse.core.resources plugin.
# Turn on debugging for the org.eclipse.core.resources plugin.
org.eclipse.core.resources/debug=true
# Reports the start and end of all builder invocations
org.eclipse.core.resources/build/invoking=true
# Reports the start and end of build delta calculations
org.eclipse.core.resources/build/delta=true
# For incremental builds, displays which builder is being run
# and because of changes in which project.
org.eclipse.core.resources/build/needbuild=true
# Prints a stack trace every time an operation finishes that requires a build
org.eclipse.core.resources/build/needbuildstack=true
###################################################################
# Turn on debug tracing for org.eclipse.pde.api.tools plugin
org.eclipse.pde.api.tools/debug=true
# Reports incremental builder activity : nature of build, indictment process,...
org.eclipse.pde.api.tools/debug/builder=true
# Print notified compatibility deltas
org.eclipse.pde.api.tools/debug/delta=true
# for the tag scanner
org.eclipse.pde.api.tools/debug/tagscanner=true
# for API profile
org.eclipse.pde.api.tools/debug/apiprofile=true
#for api analyzer
org.eclipse.pde.api.tools/debug/apianalyzer=true
#for our workspace delta processor
org.eclipse.pde.api.tools/debug/workspacedeltaprocessor=true
###################################################################
So far I have found a few scenarios where the builders could do less work - Bug 344090, Bug 344110, Bug 344163, Bug 344137. I think there are more issues, but getting a reproducible test case is proving to be a little hard in some cases.
I use JDT and PDE which means there are two builders of interest
- Java Builder
- API Analysis Builder
To know what these two builders are doing in your running Eclipse instance two things are required
- Start Eclipse with -debug option, to me more precise I used the following to redirect the debug output to a file as the debug output can grow large very soon and overflow the console buffer
- eclipsec –debug > log.txt
- Enable debug options for three plug-ins (details below)
- org.eclipse.core.resources
- org.eclipse.jdt.core
- org.eclipse.pde.api.tools
I had the following options set to true in my .options file
###################################################################
# Turn on debug tracing for org.eclipse.jdt.core plugin
org.eclipse.jdt.core/debug=true
# Reports java builder activity : nature of build, built state reading, indictment process
org.eclipse.jdt.core/debug/builder=true
# Reports java builder stats
org.eclipse.jdt.core/debug/builder/stats=true
###################################################################
# Debugging options for the org.eclipse.core.resources plugin.
# Turn on debugging for the org.eclipse.core.resources plugin.
org.eclipse.core.resources/debug=true
# Reports the start and end of all builder invocations
org.eclipse.core.resources/build/invoking=true
# Reports the start and end of build delta calculations
org.eclipse.core.resources/build/delta=true
# For incremental builds, displays which builder is being run
# and because of changes in which project.
org.eclipse.core.resources/build/needbuild=true
# Prints a stack trace every time an operation finishes that requires a build
org.eclipse.core.resources/build/needbuildstack=true
###################################################################
# Turn on debug tracing for org.eclipse.pde.api.tools plugin
org.eclipse.pde.api.tools/debug=true
# Reports incremental builder activity : nature of build, indictment process,...
org.eclipse.pde.api.tools/debug/builder=true
# Print notified compatibility deltas
org.eclipse.pde.api.tools/debug/delta=true
# for the tag scanner
org.eclipse.pde.api.tools/debug/tagscanner=true
# for API profile
org.eclipse.pde.api.tools/debug/apiprofile=true
#for api analyzer
org.eclipse.pde.api.tools/debug/apianalyzer=true
#for our workspace delta processor
org.eclipse.pde.api.tools/debug/workspacedeltaprocessor=true
###################################################################
So far I have found a few scenarios where the builders could do less work - Bug 344090, Bug 344110, Bug 344163, Bug 344137. I think there are more issues, but getting a reproducible test case is proving to be a little hard in some cases.