Codehaus Cargo is a thin wrapper that allows you to manipulate various type of application containers in a standard way.
Cargo provides the following APIs and tools:
A Java API to start/stop/configure any of the supported containers.
A Java API to (remotely or locally) deploy modules into these containers, be it a server alone, a farm or a cluster.
A Java API to parse/create/merge J2EE modules.
ANT tasks wrapping the Java API for configuring, starting, stopping and deploying applications to all supported containers.
A Web interface that wraps the Java API that can be used to configure, start and stop all containers supported by Cargo remotely and at any time.
Maven2/Maven3 plugins wrapping the Java API for configuring, starting, stopping and deploying applications to all supported containers as well as parsing, creating and merging J2EE modules.
These tools and APIs can be used in a standalone fashion or via various IDEs.