MyEclipse vs WTP
I've been using MyEclipse for a while, and it's a really powerful tool for Eclipse J2EE development. The dilemma MyEclipse faces is that the built-in tools will be built, or improve, to the point where it's not worth paying for a commercial add-on. With the blog done, I don't expect to do too much web-related development at home over the next year, and even when I do, my needs will be fairly humble. My MyEclipse subscription needs renewing, so I thought I'd take a squizz at Eclipse's Web Tools Platform (WTP) project and see if it could do what I needed.
Installing it is easy enough, but converting a MyEclipse web app to a WTP web app is not trivial. I managed to get a few web apps converted and working, but it didn't take long for me to wipe them, pull the old versions down from CVS and go back to MyEclipse.
There are a few reasons:
MyEclipse provides an umbrella J2EE library for classpath resolution during development. The library is generic, and part of the MyEclipse installation. WTP on the other hand, requires you to link directly to an app server runtime. I don't like this because I don't want to be tied to a specific server in this way. It is possible to create a generic J2EE runtime, but you're still responsible for finding and linking to the necessary jars. MyEclipse is just easier and cleaner.
Eclipse doesn't make it easy to convert projects between different types. The project's type is usually tied to a 'nature' in its .project file. Often, a bit of fiddling with the .project XML allows you to turn a plain project into a Java project, and so on. This doesn't seem to work with WTP. In addition to the natures and builders (and there are a few), it seems that some files in the project's .settings directory are also needed.
I almost always add .settings to cvsignore. It's not a biggie, but some settings can be workstation-specific and it can be quite annoying having conflicting .settings files being bounced back and forth between developers in a team. As I mentioned, it seems that WTP projects need some settings files shared just to preserve what sort of project it is.
I want my workspace projects to be my projects. I don't like polluting my workspace with the Servers project created by WTP. I know it makes it easier to share configurations and the like, but I prefer making do without it.
MyEclipse integrates with Tomcat cleanly and simply. It re-uses the server's config files, including the various app Context files. WTP gives you more options, but for all that, I couldn't get the server to see my existing Context files. Having to bundle everything, including database connection resources, into a single server.xml, just isn't workable.
Finally, linking my tco.util Java projects to my web application projects caused WTP to create .settings entries and MANIFEST files in the utility projects themselves! WTP has no business touching included projects if they're not being edited directly. That's just not on. MyEclipse does a fine job of placing dependencies into deployed web applications, without writing all over the included projects. If MyEclipse can do it, so should WTP.
I can't help but notice that many of the things I don't like are also features in Rational Application Developer, so I suspect they'll be rather entrenched in WTP, no matter how much it continues to mature. In fairness, some of them probably do make more sense in larger development teams. For now though, I'll gladly pay 32 bucks for another year's subscription to MyEclipse.
{2007.03.25 21:47}