Since I started working on Hybris projects in October 2010, I used Eclipse IDE. This is the IDE recommended by Hybris and it was the only one which I had used on Java projects until that point in my career. On March 2014 I joined a Hybris project where each developer used it own favorite IDE: while the majority used Eclipse, our Continuous Integration experts used Intellij IDEA and two senior developers used Netbeans. Crashes and refresh issues have always upset me about Eclipse. So after listening to the advantages of the other IDEs, I decided to give Intellij IDEA a try because its supporters were more convincing. Although the use of an IDEA is a matter of taste, I hope you find useful to read about my experience.
Now I am using Intellij IDEA 15 Community Edition at work since July 2014.
Positive Points about Intellij IDEA
- There aren't any refresh problems. After an "ant clean all" you have to wait 10-15 seconds until Intellij reindexes all the files and they you can work normally. This IDE also seems to react faster: There are times when Eclipse just hangs and you don't know what it is doing.
- Refactorings are faster than in Eclipse. Additionally the IDE doesn't crash during the process and Intellij seems to spot required changes in Spring application which Eclipse seem to miss (Ultimate Edition of Intellij IDEA).
- Searching classes and files is faster because the name matching algorithm doesn't require the use of asterisks and it matches the given characters in every part of the name.
- Windows arrangement: Although Eclipse has a more powerful windows management framework, I found myself finding the right window faster in Intellij. When I follow the call hierarchy of a method, I have ten windows open and not tons of them as in Eclipse.
- You can mark the folders which contain source code from tests. Then the search can classify the results in Production and Testing.
- The analysis of Findbugs, PMD and Checkstyle using the QA plugin runs faster than in Eclipse and I can easily configure what issues I would like to analyse.
- The debugger starts faster than in Eclipse.
Positive Points about Eclipse IDE
- You get all the features of the IDE for free. If you want to use Java EE features or Spring beans refactoring in Intellij IDEA, you have to pay for the Ultimate Edition.
- When you build the Hybris project with Eclipse, the Hybris models are generated or updated.
- After an update of the Hybris Platform, the dependencies of each extension (libraries) are automatically updated. Intellij have an option to associate the iml file with the classpath file but it messes up the Hybris dependencies after a version update of the eCommerce Platform.
- The integration of Sonar in Hybris Projects works. The current version of the two Sonar plugins for Intellij don't support multiple modules.
- The formatting of Intellij is slightly different from Eclipse. For example, the annotation are in the same line as the declaration of the method and the comments of the fields are packed in one line. After trying to tweak Intellij, I installed the Eclipse Formatter plugin and imported the configuration from Eclipse.
- I use the shortcuts of Eclipse in Intellij. This reduced the pain of learning to use Intellij a lot. ;-)
- I still haven't found a way to insert the this keyboard on the calls to the methods in Intellij. And there are other checks like the use of autoboxing which I am still looking for.
- The import of the eclipse project configuration files into Intellij IDEA works correctly. But Intellij has another classification of the folders and it is useful to tell him which are the generated and test classes.
- Unit and Integration tests work. In Intellij you have to import the whole project using the Hybris Integration plugin or to correct the dependencies of all the modules in the platform directory manually.
Positive Points about Intellij IDEA
- The hybris runner which generates the models and triggers the build callbacks don't work. Before running the integration tests, you have to run ant all in a console to generate the update Hybris code.
I use Intellij IDEA for everything because the IDE reacts faster and I don't have any refresh issues.But:
- After changes in the code, I build the project using ant clean all
- After a Hybris Version update, I recreate the project using the Hybris Plugin to have the right dependencies. Afterwards the integration tests work again
Based on Hybris 126.96.36.199