I was wondering if anyone had any views on deployment tools? I need to automate the deployment process all the way from DEV >> UAT >> Production and was wondering if anyone had any recomendations of what to use or any best practices that I can include. The process wil involve deploying ear files, sql scripts, xml config files and maybe a complete JBoss installation.
JSR-88 defined a standard JEE deployment interface, and I think most of the modern appservers support it. If you were deploying JUST java deployables, the Ant tool (among others) provides the ability to deploy.
However, often there's an external context of non-Java stuff, such as the SQL scripts you mentioned. So I generally make my deployables OS install packages. For Solaris, that means dpkg. For RHEL, rpm, For debian/Ubuntu it's deb's. For Windows, it's MSI. Not only does this allow for the non-Java stuff, but your production sysadmins will probably like you more, since they're typically more familiar with the OS installers than the ins and outs of J(2)EE.
Ant and Maven have the ability to create installable packages, and right now I have a project that Maven outputs as an RPM. The main limitation is that they usually have to be created on the same OS as the target package, since they usually employ the OS's package-building utilities. There's also a "universal" packager that can take a common definition and build for Debian/RPM/Solaris from a single source should you need to target multiple heterogeneous servers.
JBoss itself is installable as a vendor-supplied RPM on RHEL. It's possible that there's an MSI for it as well. But, considering that JBoss is owned by one of the world's largest Linux distributors, I'd wager that their support staff is more experienced in that particular venue.
An IDE is no substitute for an Intelligent Developer.