There's always a trade-off with either fat JARs or
light WARs deployed to an app server. Neither of them is
actually more lightweight in all aspects.
- Fat JAR may contain only what is necessary, there's no
easy and straightforward way to build it as most solutions
like Spring Boot and WildFly Swarm require a special maven
plugin and configuration.
- Light WARs may contain only the business logic, but
there's no easy and straightforward way to run them in an app
server as most solutions require a special deployment tool or
web interface to deploy pps
I think both ways to package and run enterprise
applications are valid for certain usecases and should be
addressed
- Building fat JARs can be as simple as using a standard
tool or a common maven plugin
- Running light WARs can be also almost as simple as
running a JAR, just run `java
-jar appserver.jar -app application.war` or `appserver -app application.war`
The latter is already supported by Payara Micro and Hollow
WildFly Swarm (e.g. `java
-jar payara-micro.jar --deploy application.war` or `java -jar
wildfly-swarm-hollow.jar application.war`).
Traditional app servers like GlassFish also provide
command-line tools that can do deploy a WAR application into a
running server, e.g. GlassFish with `asadmin deploy
application.war`. It could be standardized to simplify running
and deploying plain WARs.