-
Notifications
You must be signed in to change notification settings - Fork 39
External Build Server
From IntelliJ 12 the Java compilation uses an external build server. The motivation mainly seems to be performance, but it does add some nifty incremental compilation options as well and the Scala plugin uses it for type-based hints. The architecture suits us quite well since that's essentially what we get whether we want it or not anyways.
For some reason IntelliJ felt that jps
is a good naming convention for external build servers, and there seems to be hardcoded knowledge in IntelliJ depending on the naming convention.
The external build server is responsible for calling cabal
or building things through the GHC-API directly. The configuration of the compiler still resides in the main plugin. The points mentioned in Cabal are still relevant, they just move to a different part of the source code.
IntelliJ 13 defaults to using external builds and there is no way to turn it off.
The external build server lives in jps-plugin
in the source tree.
IntelliJ description: http://confluence.jetbrains.com/display/IDEADEV/External+Builder+API+and+Plugins
Scala plugin description: http://blog.jetbrains.com/scala/2012/12/28/a-new-way-to-compile/