## Synopsis
`ceylon run [--auto-export-maven-dependencies] [--cacherep=<url>] [--compile[=<flags>]] [--cwd=<dir>] [--flat-classpath] [--link-with-current-distribution] [--maven-overrides=<file>] [--no-default-repositories] [--offline] [--overrides=<file>] [--rep=<url>...] [--run=<toplevel>] [--sysrep=<url>] [--timeout=<seconds>] [--verbose[=<flags>]] [--] [<module>]`

## Description
Executes the Ceylon program specified as the `module` argument. The `module` may optionally include a version.

## Options
`--auto-export-maven-dependencies` | When using JBoss Modules (the default), treats all module dependencies between Maven modules as shared.
`--cacherep=url` | Specifies the folder to use for caching downloaded modules. (default: `~/.ceylon/cache`)
`--compile[=flags]` | Determines if and how compilation should be handled. Allowed flags include: `never`, `once`, `force`, `check`.
`--cwd=dir` | Specifies the current working directory for this tool. (default: the directory where the tool is run from)
`--flat-classpath` | Launches the Ceylon module using a flat classpath.
`--link-with-current-distribution` | Link modules which were compiled with a more recent version of the distribution to the version of that module present in this distribution (1.3.1). 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.1. Allowed arguments are upgrade, downgrade or abort. Default: upgrade
`--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.
`--overrides=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`)
`--run=toplevel` | Specifies the fully qualified name of a toplevel method or class to run. The indicated declaration must be shared by the `module` and have no parameters. The format is: `qualified.package.name::classOrMethodName` with `::` acting as separator between the package name and the toplevel class or method name. (default: `module.name::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`, `cmr`.

## Compile flags
The `--compile` option can take the following flags: never - Never perform any compilation once - Only compile when the compiled module is not available check - Compile when the sources are newer than the compiled module force - Always compile If the flag is given without an argument it's the same as specifying `check`. If no flag is given at all it's the same as specifying `never`.

## Configuration file
The run tool accepts the following option from the Ceylon configuration file: `runtool.compile`, `runtool.run`, `runtool.module` and multiple `runtool.arg` (the equivalent option on the command line always has precedence).

## EXAMPLE
The following would execute the `com.example.foobar` module:
    ceylon run com.example.foobar/1.0.0
The following would execute the `bob` function in the `com.example.foobar.gee` package of the same previous module:
    ceylon run --run com.example.foobar.gee::bob com.example.foobar/1.0.0