Are there any well-integrated application-management stacks that allow the build, deployment and updating of non-.war
Java applications that run as servers? For example message consumers that are servers (but not webservers and have no Servlets), or executable .jar
s with Jetty embedded?
Building and deploying .war
s is pretty straightforward: Maven has the war archetype, Jenkins has a heap of plugins for deploying .war
files to various application servers, most of which accept the upload of new web applications at runtime. Tools like Elastic Beanstalk make this process even easier, tying in the management of server environments.
By contrast deploying executable .jar
s seems like re-inventing the wheel. One needs to sort out the best way of shading the dependencies and creating an executable artefact with a plethora of Maven plugins, deposit this artefact somewhere, then find a way of installing it on target servers, and replacing/upgrading it if necessary (Debian packages would be one way of doing this).
This all seems very 'manual' to me, to the point that it seems advantageous to deploy applications as .war
s to application servers, even if they're not a natural fit for such an environment, just so you get the benefit of tool support.