tags:

views:

429

answers:

12

For web development what are some standard/good java tools. That apply to all aspects of development.

For example, The IDE (Eclipse, RAD, Intellij) is important, but what else is there.

Ant is a good one. Cygwin, Linux OS possibly.

A: 

I recommend Oracle JDeveloper. It covers all aspects of Java and web development from the simple web sites to the highly complex using ADF and other frameworks.

Thomas Jones-Low
+1  A: 

IDE is the tool where you will work 90% of your time. So the choice of the IDE is extremly important (yes, choose IntelliJ ;) ) Today, they integrate lots of plugins / features, such as Ant or Maven2 tools.

I use Oracle SQL developer (or eventually Toad) to browse my databases. For web developments, you have Firebug for Firefox essentially to debug Javascript. You can also test your web applications by using Selenium.

Others tools: GlassFish for application server. Sonar for quality control. Hudson for continuous Integration.

romaintaz
+6  A: 

Another good IDE for Java web development I use is Netbeans. Has many useful features version control, debugger, profiler, api access etc ... You can edit, build, test, and run all inside of the IDE.

Mark Robinson
A: 

The IDE is the most important tool, and the different IDE's have somewhat different focus:

IDEA and Eclipse are what I'd call code-centric IDE's, that do not focus extensively on wizards and designers - although they both have some designers. Netbeans is the direct equivalent of Visual Studio for java; focusing on visual designers wizards and more guided developer support.

Take your pick ;) (I'm a IDEA user)

krosenvold
+1  A: 

Spring is a pretty powerful framework. We only use the controller and view aspects of it, but it has a lot of features.

Hibernate is always great to use. I believe Spring will also work with Hibernate and make some things easier.

I usually host the app on Tomcat.

The latest version of Netbeans has a lot of features and integrates very nicely with Tomcat and other app containers.

Aqua data studio is great for working with databases.

We use luntbuild for building the application.

DWR is great for AJAX.

Also consider topics like this:

http://stackoverflow.com/questions/913/what-javascript-library-would-you-choose-for-a-new-project-and-why

sjbotha
A: 

The single best tool you can have (IMHO) for Java web development is access to a remote debugger that is JPDA compliant. An example implementation can be found in the Eclipse Web Tool Platform plug-ins.

Why is this so good? Well, if you're having issues with your controller that you can't turn up in your unit tests and that you can only recreate on the live running system, you can attach your normal debugger (such as the eclipse debugger) to a live web page and treat it the same way you would any other piece of Java code. Breakpoint to your hearts content.

(I've assumed you're interested in actual tools, and not just libraries like Spring, Struts, Freemarker et al).

GaryF
+2  A: 

Before trying to write a piece of code check if it is implemented in some library. Great source of common programming task solutions can be found in Apache Commons libraries.

Boris Pavlović
+1  A: 

JUnit, Cobertura, Hudson

Gilad Naor
A: 

We are using TeamCity. This is very useful tool for building projects. Supporting not only Java but also .NET projects. And it is free.

And why no one mentioned about VSC? :) We are using Subversion, but Git is more convinient in more cases. It give more comfortable tools for working with branches.

Maven also good tool, but it's too complex. Especially if you are already using ant. In this situation i recommend you to look at Ivy. Ivy can manage dependencies for you, like Maven, and use Maven repositories.

VisualVM great tool for monitoring your JVM instances. It have plugins for mbeans exploring, thread dump analyzing, memory dump analyzing and more.

As unit testing framework i recommend TestNG combining with hamcrest. TestNG is more flexible than JUnit and have multiple advantages like support for parallel testing, for example. You can easily run your tests in parallel.

dotsid
A: 

I've been very happy with NetBeans for years. Used Eclipse too but I decided to stick with one and NetBeans was my favorite.

Don't know what the other guy was talking about when he said Netbeans was more visual. Except for Matisse, which is for Swing apps and I think there's a JavaFaces visual thing but I don't use faces.

I started programming java web apps in notepad (yeah i know) years ago and find it much faster to code in NetBeans. You download it and you're ready to start building websites right after you install it.

A: 

My infrastructure looks like this for the webapp I'm involved in:

  • IntelliJ Idea, I just use it for some time now, but I guess any halfway modern IDE will do it, just learn one and learn it well, so read NetBeans, JDeveloper, Eclipse but I never used one of them for longer time
  • Teamcity, Continous Integration (which I love for the delayed checkin and remote runs, never ever check in a broken branch anymore!)
  • Maven and Artifactory, Dependency Management for our software stack
  • Tomcat (or Glassfish)
  • SVN as SCM

On the lib side I use

  • Spring
  • Hibernate
  • JSF + Trinidad
  • Spring Webflow
  • JUnit
  • Fitness
  • EasyMock

I guess for development you should also consider something like HSQL or something, don't make yourself depend on big databases and you can't run/test your stuff on the road ;-).

The hard part in the beginning here is to set everything up properly in maven. This is not a task which just takes 5 minutes but I think it's worth it. I have not played around with Ivy yet maybe this might be a good solution too. I do not want to wade through ant scripts anymore, those are getting easily out of hand if your project grows.

Everything works in Windows/Linux/Mac as you would expect from Java and a modern IDE.

A: 

FindBugs is a good utility for improving your Java code in general, whether you're doing web development or something else:

http://findbugs.sourceforge.net/

Michael Angstadt