I\'m a big fan of Capistrano but I need to develop an automated deployment script for a Java-only shop. I\'ve looked at Ant and Maven and they don\'t seem to be well geared tow
What's interesting is that Capistrano's idea of a repo assumes that you're dealing with an SCM (Source Control Manager). The structure on the server and the associated versioning of the application works on the application source. This makes sense for an interpreted language.
In a compiled language like Java, though, the versioning and branching comes before deployment and by the the time the application is compiled and built, the source control system is already left behind and what results is a versioned jar or tar to contain the application. Typically this tarball (jar + config) is published to a Maven artifact repository like Nexus or Artifactory.
Surprisingly, this artifact repo maps to the Capistrano repo just fine. In place of the SCM, we can treat this tarball as the SCM (the source to be versioned). With this in mind, I've implemented a Capistrano SCM plugin for Maven artifact repos. It's new but works pretty nicely.
It unifies our Ruby and Java projects on one tool, and most importantly, it brings the power of Capistrano's SSHKit and rake to our Java projects.