## Synopsis
`ceylon fat-jar [--cacherep=<url>] [--cwd=<dir>] [--exclude-module=<moduleOrFile>...] [--force] [--jdk-provider=<module>] [--link-with-current-distribution] [--manifest-entry=<key:value>...] [--maven-overrides=<file>] [--no-default-repositories] [--offline] [--out=<file>] [--overrides=<file>] [--rep=<url>...] [--resource-root=<directory>] [--run=<toplevel>] [--sysrep=<url>] [--timeout=<seconds>] [--verbose[=<flags>]] [--] <module...>`

## Description
Gerate an executable fat jar which contains the given module and all its run-time dependencies, including the Ceylon run-time, which makes that jar self-sufficient and executable by `java` as if the Ceylon module was run by `ceylon run`.

## Options
`--cacherep=url` | Specifies the folder to use for caching downloaded modules. (default: `~/.ceylon/cache`)
`--cwd=dir` | 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 resulting fat jar. Can be a module name or a file containing module names. Can be specified multiple times. Note that this excludes the module from the resulting fat jar, 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.
`--force` | Force generation of mlib folder with multiple versions of the same module.
`--jdk-provider=module` | Alternate JDK provider module (defaults to the current running JDK).
`--link-with-current-distribution` | Downgrade which were compiled with a more recent version of the distribution to the version of that module present in this distribution (1.3.3). 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.3.3. Allowed arguments are upgrade, downgrade or abort. Default: upgrade
`--manifest-entry=key:value`, `-e key:value` | Specify a manifest entry for the resulting fat jar, of form :. Can be specified multiple times.
`--maven-overrides=file` | Specifies the XML file to use to load Maven artifact overrides. See http://ceylon-lang.org/documentation/current/reference/repository/maven/ for information. Deprecated: use --overrides.
`--no-default-repositories` | Indicates that the default repositories should not be used.
`--offline`, `-L` | Enables offline mode that will prevent connections to remote repositories.
`--out=file`, `-o file` | Target fat jar file (defaults to `{name}-{version}.jar`).
`--overrides=file`, `-O file` | Specifies the XML file to use to load module overrides. See http://ceylon-lang.org/documentation/current/reference/repository/maven/ for information. Experimental.
`--rep=url` | Specifies a module repository containing dependencies. Can be specified multiple times. (default: `modules`, `~/.ceylon/repo`, `https://modules.ceylon-lang.org/repo/1`)
`--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).
`--run=toplevel` | Specifies the fully qualified name of a toplevel method or class with no parameters. The format is: `qualified.package.name::classOrMethodName` with `::` acting as separator between the package name and the toplevel class or method name (defaults to `{module}::run`).
`--sysrep=url` | 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`.