ceylon war [--cacherep=<url>] [--cwd=<dir>] [--exclude-module=<moduleOrFile>...] [--link-with-current-distribution] [--maven-overrides=<url>] [--name=<name>] [--no-default-repositories] [--offline] [--out=<dir>] [--overrides=<url>] [--rep=<url>...] [--resource-root=<directory>] [--sysrep=<url>] [--timeout=<seconds>] [--verbose[=<flags>]] [--] <module-with-version>


Generates a WAR file from the .car file of the given module-with-version, suitable for deploying to a standard Servlet container.

The version number is required since, in general, there can be multiple versions available in the configured repositories.

The given module's .car file and those of its transitive dependencies will be copied to the WEB-INF/lib of the generated WAR file. Dependencies which are provided by the application container (and thus not required to be in WEB-INF/lib) can be excluded using --exclude-module.



Specifies the folder to use for caching downloaded modules. (default: ~/.ceylon/cache)


Specifies the current working directory for this tool. (default: the directory where the tool is run from)

--exclude-module=moduleOrFile, -x moduleOrFile

Excludes modules from the WAR file. Can be a module name or a file containing module names. Can be specified multiple times. Note that this excludes the module from the WAR file, but if your modules require that module to be present at runtime it will still be required and may cause your application to fail to start if it is not provided at runtime.

Downgrade which were compiled with a more recent version of the distribution to the version of that module present in this distribution (1.2.2). This might fail with a linker error at runtime. For example if the module depended on an API present in the more recent version, but absent from 1.2.2. Allowed arguments are upgrade, downgrade or abort. Default: upgrade


Specifies the XML file to use to load Maven artifact overrides. See for information. Deprecated: use --overrides.

--name=name, -n name

Sets name of the WAR file (default: moduleName-version.war)


Indicates that the default repositories should not be used.

--offline, -L

Enables offline mode that will prevent connections to remote repositories.

--out=dir, -o dir

Sets the output directory for the WAR file (default: .)


Specifies the XML file to use to load module overrides. See for information. Experimental.


Specifies a module repository containing dependencies. Can be specified multiple times. (default: modules, ~/.ceylon/repo,

--resource-root=directory, -R directory

Sets the special resource directory whose files will end up in the root of the resulting WAR file (default: web-content).


Specifies the system repository containing essential modules. (default: $CEYLON_HOME/repo)

--timeout=seconds, -T seconds

Sets the timeout for connections to remote repositories, use 0 for no timeout (default: 20).

--verbose[=flags], -d

Produce verbose output. If no flags are given then be verbose about everything, otherwise just be verbose about the flags which are present. Allowed flags include: all, loader.

Overriding web.xml

If you provide a custom WEB-INF/web.xml file in your WAR resource-root, you'll need to include the listener (ceylon.war.WarInitializer) that is set in the default web.xml. Without that listener, the metamodel will not be properly initialized.


Repositories like those specified with the --rep or --out options can be file paths, HTTP urls to remote servers or can be names of repositories when prepended with a + symbol. These names refer to repositories defined in the configuration file or can be any of the following predefined names +SYSTEM, +CACHE, +LOCAL, +USER, +REMOTE or +MAVEN. For more information see