IDEA 10.0.2 Compile Honor Dependencies missing?

Upgrading from IntelliJ IDEA 9 and I can't find the Honor Dependencies option on the properties page for Compile. This makes the tool impossible to use in my configuration. Where did the option go? How do I turn it back on?

5 comments
Comment actions Permalink

This option was removed for performance and ideological reasons. It will not appear again. You should always use Build | Make which in incremental and fast, and avoid using Compile.

0
Comment actions Permalink

This is very dissapointing. We have a team of 20 developers and have been using IntelliJ since the first version. We have over a million lines of code in our project and good chunks of it don't compile for various reasons. We still desire this code in our project for history/searching/use, or for when those modules are brought back up to date We do builds outside of IntelliJ using ant which only picks up and builds the appropriate files for modules needing to be deployed. Some modules don't need to be deployed for years at a time, during which they won't build, but we prefer a single project/source tree for all code to facilitate reuse. We also do a lot testing in IntelliJ using JUnit/Main methods. Without the honor dependencies won't be able to use IDEA 10. We've spent quite a bit of time trying to create a project for everyone to use but this task has never been finished, and still would not work having modules that are years out of sync with dependent files. Having each developer be unable to work isn't feasible, and that's what this option missing means for us.

Is there any workaround to enable/replicate functionality at all in IDEA 10? I know I still have some hold outs on IntelliJ 7/8 in our team even though we keep our licensing current. But this would prevent everyone from upgrading to 10.

0
Comment actions Permalink

It's rather unusual to work on a project which doesn't even compile. I'd suggest you to exclude such folders/files from compilation via Settings | Compiler | Excludes.

0
Comment actions Permalink

With almost a hundred thousand files that is just not an option. The classes are also mixed into the same packages, so we can't exclude based on packages. I don't think this is that unusual when you have this many files and only a handful of developers. This is a large system that has many modules that can be built and deployed independently. Some modules aren't updated for years at a time. Changes to interfaces of base classes to support new/refactored code breaks these older modules. But with a small team you do not have the resources to go back and change those older modules. The modules are deployed as web applications that are still in use, but just stable enough to not need changes very often. Sometimes we're even lucky enough to deprecate them completely at which time we will remove the unused classes from the project. But this is a rare event. With external customers you often need to leave these legacy systems working for a long time.

I think I understand the goal and desire of the new mode of operation. It is just too sudden a change for us, and completely breaks how we've been using IntelliJ for almost 10 years.

0
Comment actions Permalink

Here is one potential workaround for others who use the tool in a similar environment.

Under the Settings->Compiler->Java Compiler pane you can still add additional command line parameters. In our case added a -sourcepath argument pointing to our single source tree which will allow developers to continue to use the Compile (Ctrl-Shift-F9) command which doesn't make sense if it doesn't follow and build missing dependencies.

0

Please sign in to leave a comment.