Meecrowave Command Line Interface

Meecrowave provides a CLI (Command Line Interface) called org.apache.meecrowave.runner.Cli.

It can be used to deploy the java classpath or a war. Here are the main options:

Name Description


Should Tomcat anti resource locking feature be activated on StandardContext.


Should CDI conversation be activated


HTTPS keystore client authentication


Conf folder to synchronize


Custom connectors


Configurers for all webapps. The Consumer<Context> instances will be applied to all deployments.


Init parameters passed to CXF servlet


The name of the default SSLHostConfig that will be used for secure https connections.


Should the directory be cleaned on startup if existing


Root folder if provided otherwise a fake one is created in tmp-dir


Default host


Activate HTTP 2


HTTP port


HTTPS port


Should the client bus be set. If false the server one will likely be reused.


ServletContainerInitializer instances.


Should ServletContainerInitialize support injections.


Should bean validation be activated on JAX-RS endpoint if present in the classpath.


If jaxrsProviderSetup is true the list of default providers to load (or defaulting to johnson jsonb and jsonp ones)


Should JAX-RS providers be logged


Default jaxrs mapping


Should default JAX-RS provider be configured


Should @WebService CDI beans be deployed if cxf-rt-frontend-jaxws is in the classpath.


Should JSON-B provider prettify the output


Which encoding provider JSON-B should use


Should JSON-B provider comply to I-JSON


Should JSON-B provider prettify the output


Should JSON-B provider serialize nulls


Should JSON-B provider prettify the output


Should JSON-B provider prettify the output


JSON-P JAX-RS provider buffer strategy (see johnzon)


JSON-P JAX-RS provider read buffer limit size (see johnzon)


JSON-P JAX-RS provider max string limit size (see johnzon)


JSON-P JAX-RS provider write buffer limit size (see johnzon)


Should JSON-P JAX-RS provider prettify the outputs (see johnzon)


Should JSON-P JAX-RS provider support comments (see johnzon)


Don’t replace ports in server.xml


HTTPS keystore alias


HTTPS keystore location


HTTPS keystore password


HTTPS keystore type


Should logging be configured to use log4j2 (it is global)


web.xml login config


Loads a meecrowave properties, defaults to


A file path to write the process id if the server starts


Passthrough properties


Should an unsecured but fast session id generator be used




In memory roles


A forced exclude list of jar names (comma separated values)


A forced include list of jar names (comma separated values)


A forced exclude list of packages names (comma separated values)


A forced include list of packages names (comma separated values)


web.xml security constraint


Provided server.xml


A folder containing shared libraries.


Skip HTTP connector




HTTPS protocol


Shutdown port if used or -1


Temporary directory


Activates and configure the access log valve. Value example: '%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'


Add default servlet


A Tomcat JarScanFilter


Should JSP support if available be set in development mode


(Experimental) Should Tomcat MBeans be skipped.


Should Tomcat scanning be used (@HandleTypes, @WebXXX)


(Experimental) When deploying a classpath (current classloader), should meecrowave wrap the loader to define another loader identity but still use the same classes and resources.


Should JUL logs be redirected to Log4j2 - only works before JUL usage.


Use shutdown hook to automatically stop the container on Ctrl+C


Should Tomcat default be set (session timeout, mime mapping etc…​)


In memory users


Activate redeployment on directories update using this bouncing.


Cache web resources


Force the cookie-config, it uses a properties syntax with the keys being the web.xml tag names.


Force the session timeout for webapps


Global web.xml


Show the CLI help/usage


The context to use to deploy the webapp


Location of the webapp, if not set the classpath will be deployed


Location of the docbase for a classpath deployment

Note that help command is supported as well.

Extending the CLI

You can add your own CLI options implementing org.apache.meecrowave.runner.Cli$Options (just a marker interface, no logic to code) and use @CliOption to define fields as coming from the CLI arguments. To register your option bean just add it in META-INF/services/org.apache.meecrowave.runner.Cli$Options.

Meecrowave.Builder provides a getExtension(type) which can be used to get this kind of extension. This is common and works in all modes (arquillian, JUnit, embedded etc…​) replacing the arguments by properties on Meecrowave.Builder instance.