Eclipse Java IDE: A Plugin Guide

Abstract

Eclipse [dl] is one of the favourite IDEs for Java developers today. Part of the reason is its well designed plugin model, which allows easy writing of plugins, hence many plugins; and also easy installation, using an update manager which just requires a specific kind of website directory with an XML description file.

However, with the multitude of plugins available (e.g. at Eclipse Marketplace), it becomes more difficult to choose which plugins may actually be useful. In this article, I try to list the plugins that I personally have used for a long time and deem useful.

Before we start, note that not all JDKs are compatible with all Eclipse versions:

Update 2010-01: Refreshed on JBoss Tools with the advent of the stable Java EE 5 server.

Update 2021-04: Many plugins are included by default now, and a lot of update sites have changed. JBoss was renamed to WildFly in 2014.

1 Repository

The first thing that I ponder is a better team mechanism (version control), listed under Window->Prefences->Team. As of 2020, Git is integrated in the form of the EGit plugin (before, you had http://download.eclipse.org/egit/updates as update site).

A little bit old school, Subversion is still better than CVS and can be included with the Subclipse plugin [mp], using https://subclipse.github.io/updates/ as update site (it used to be http://subclipse.tigris.org/update_1.6.x in the 2010s).

2 UML Design

Good open source UML tools are quite rare, and I am still using the lean (class diagram and sequence diagram only) plugin AmaterasUML [gh], which has https://takezoe.github.io/amateras-update-site/ as update site (unlike in the 2010s, where download was required; it also needed GEF). If your old cld or sqd files will not load, it is probably the fault of xstream; open the file with a text editor and replace Visibility-1 with Visibility$1 and it should migrate gracefully.

For more full-blown UML solutions, ATL [dl] [mp], PlantUML [dl] [mp] and Umple [dl] [mp] might be contenders that still release in 2020 (in the 2000s it was ArgoUML with ArgoEclipse only, both of which didnt impress me much back then).

3 Code Quality

Eclipse itself already provides many tools and hints for improving code quality. And you can extend it with many plugins available out there; however most of those code improvement tools are too eager, and provide a million warnings which then usually get ignored.

One simple plugin that I found particularly useful (shameless plug: a friend of mine wrote it) is JLayerCheck, which checks package dependencies and ensures they are upheld. The update site is http://jlayercheck.sf.net/update-site and you need to write one XML file (with the package dependencies) by hand. The plugin is a kind of SonarGraph (previously: SonarJ) for the poor.

Checkstyle [mp], SpotBugs [mp] (previously: FindBugs) and SonarLint [mp] might also be good. I tried Checkstyle and FindBugs last in 2005 and it was not possible to remove warnings that were none (i.e. where I had intended the code to be that way); since I like an empty problem view, I did not keep them back then.

4 Python and Latex

I use Python for quick coding on arrays, and for using external C++ libraries [tut], which is usually a pain with Java (JNI). PyDev [home] [mp] is a reasonable Eclipse plugin with http://pydev.org/updates as update site. It uses a non-common certificate so do not update in the background (the dialog will not pop up, just fail). If you are using Java 8, the last working PyDev 8.2.0 (2021-02) [dl] can be installed with http://www.pydev.org/update_sites/8.2.0 as update site. For debug, set the first breakpoint directly in your main loop; otherwise, it may fail.

For documentation with math in it, I used Latex for a long time, here in the form of Texlipse [ecl] [gh] [mp]. Since Texlipse 1.5 apparently you have to use the market place (before that http://texlipse.sourceforge.net was the update site of choice). And Texlipse 2.0.2 (2018-07) is the last to run with Java 8, with http://download.eclipse.org/texlipse/2.0.2/ as update site.

5 Enterprise Java

Since I have not developed for JEE in a decade, you should probably ask someone else. Personally, I would go for the open-source app server Glassfish [mp] since it still releases and was ok in 2010. The Apache TomEE (JEE version of Tomcat) with an Eclipse-included plugin also sounds good if you are feeling experimental.

During 2000 to 2010 I used the JBoss application server (now forked to WildFly) with the JBoss Tools plugins for a long time and was reasonably satisfied; latest in 2010 with Eclipse 3.5 (Galileo) [dl] and update site http://download.jboss.org/jbosstools/updates/development/ (still available but out of date).

Also in the 2000s and on the more basic side when I used Apache Tomcat [home], the Sysdeo Tomcat plugin was a good help; last released in 2014 and still without an update site, this is one curious combination. Today I would probably go for a full application server.

6 C++

Getting both plugin development (PDE) and C++ development (CDT) into one Eclipse installation was not possible in 2010 and is still difficult in 2020.

Whew, that is a lot of trials just to get a combined Eclipse!

7 Installer

So far, I have only written an installer with IzPack, but no Eclipse support here. For multi-platform, the 2000s Eclipse Delta pack (choose an Eclipse version, then browse way down the page) is apparently not necessary with p2 anymore.

People I know have used the Nullsoft Installer [home] (yes, the WinAmp [home] guys) and the NSIS plugin, but this is Windows only.

8 GUI Builder

Since I have not used a GUI builder outside Android in a decade, this is severely out of date.

In the 2010s Netbeans [dl] was traditionally better than Eclipse with their Matisse GUI builder, but the Eclipse Visual Editor was trying until 2010 with http://download.eclipse.org/tools/ve/updates/1.4/ as last update site.

In 2020 WindowBuilder [mp] and Jigloo SWT/Swing GUI builder [mp] seem to be somewhat current approaches.

Conclusion

Eclipse is a good IDE for Java developers with a well designed plugin model. If you found a few good plugins through this article, it was a success. Thanks for leaving a part of your attention span here, and have a good day!

EOF (Apr:2021)