Developers are as loyal with their IDEs as they are their appservers, so it’s important for Application Servers to support the main IDEs so they don’t force their developers into using a platform they don’t want to, or missing out on Tooling support entirely.
For many, good integration with build tools can be as important as good IDE integration, sometimes more important. The two main build tools used which we will be looking at are maven and ant.
Jetty’s build tool integration is quite well developed. It’s has integration with Ant, Maven out the box and can also be integrated with whichever tool you like, with minimal effort.
It is possible to configure your development environment very closely to the one that you are running in production. The maven plugin for Jetty allows you to configure almost everything in the pom.xml file.
The thing that we liked with Maven’s Jetty plugin is that Jetty is so tiny. So it won’t take long for Maven to download all the internets.
Reason: The Eclipse plugin for earlier versions of Jetty is not great, light server management support.
The big three IDEs, Eclipse, IntelliJ IDEA and Netbeans, all have integration support for Tomcat out the box. This means you can import a server into the tooling and deploy projects onto the server. NetBeans offers a distribution which wraps a Tomcat image so that you can deploy as soon as NetBeans installs :o) Eclipse also has the additional download feature which allows you to download and install Tomcat from within your tooling, meaning you don’t have to do it via a browser and later import it.
Tomcat seems to be very tightly integrated with Ant, and most documentation includes ant examples rather than Maven, although Maven has good integration as well.
Reason: Great IDE support, and download/install through eclipse gives a good experience
The umbrella project for multiple Eclipse plugins, jboss-tools, includes among other things JBoss Developer Studio which has a server adaptor for JBoss Servers and allows you to manage jbosses from your IDE. IDEA has a closed source “JBoss Integration” plugin to manage servers, and NetBeans has integration and ability to manage AS 7-th since version 7.2.1.
There’s a maven plugin to manage your jboss instances. Its functionality includes starting and stopping, deploying and redeploying apps, managing resources and executing commands like through a jboss CLI.
Reason: Good cross IDE support, able to make light server config changes, good maven support
The Liberty Profile tools, named IBM WebSphere Application Server Developer Tools for Eclipse (a product name that almost needs punctuation) is only supported on the Eclipse platform. If you’re an IntelliJ IDEA or NetBeans fan, you’re out of luck. The tools let you download and install the whole server easily, and provides feature rich development for the programming models which the Liberty Profile supports. It also provides rich editor support for server config changes in a similar style to a deployment descriptor editor which you’ve likely seen/used. Overall the tooling is good, on Eclipse.
The Liberty profile also includes a Maven plugin which provides allows you to drive some actions to a server, You can install, start, stop, package and create server using predefined goals. Driving these is fairly easy:
mvn liberty:package-server -DserverHome=/path/to/server_home -DserverName=[server_name] -DpackageFile=/path/to/packaged server file location
Reason: Great eclipse support and rich server config changes. Good Maven support, but lacking in cross IDE support.
GlassFish has plugins available for all major IDEs these days. But the problem with the plugin is that the information is scattered around. The plugin for NetBeans is already bundled with the IDE, as you’d expect given the vendor behind it, but others need to find the correct website to install the plugin. Fortunately, GlassFish Tools are available in the Eclipse Marketplace for Eclipse users – this makes Eclipse user’s lives a lot easier.
IntelliJ IDEA users are lucky too – they have the plugin already bundled with the IDE.
Reason: Info about where to find plugins is poor, great IDE support once the plugins were found (particularly with NetBeans and Eclipse).