ceylon compile(1) ceylon compile(1)NAME
ceylon compile - Compiles Ceylon and Java source code and directly pro‐
duces module and source archives in a module repository.
SYNOPSIS
ceylon compile [--auto-export-maven-dependencies] [--cacherep=url]
[--cwd=dir] [--encoding=encoding] [--flat-classpath]
[--javac=option...] [--maven-overrides=url] [--no-
default-repositories] [--no-osgi] [--no-pom] [--offline]
[--osgi-provided-bundles=modules] [--out=url]
[--overrides=url] [--pack200] [--pass=secret]
[--progress] [--rep=url...] [--resource=dirs...]
[--resource-root=folder-name] [--source=dirs...]
[--src=dirs...] [--suppress-warning[=warnings...]]
[--sysrep=url] [--timeout=seconds] [--user=name]
[--verbose[=flags]] [--] [moduleOrFile]...
DESCRIPTION
The default module repositories are modules and http://modules.cey‐
lon-lang.org/repo/1, while the default source directory is source and
the default resource directory is resource. The default output module
repository is modules.
The <moduleOrFile> arguments can be either module names (without ver‐
sions) or file paths specifying the Ceylon or Java source code to com‐
pile.
When <moduleOrFile> specifies a module the compiler searches for compi‐
lation units and resource files belonging to the specified modules in
the specified source and resource directories. For each specified mod‐
ule, the compiler generates a module archive, source archive, and their
checksum files in the specified output module repository.
When <moduleOrFile> specifies a source file only that file is compiled
and the module archive is created or updated with the .class files pro‐
duced. The source file path is treated as relative to the current di‐
rectory (it still needs to be located either in the default source
folder or in any folder defined by the configuration file or --source
options!).
When <moduleOrFile> specifies a resource file only that file is added
to the module archive. The resource file path is treated as relative to
the current directory (it still needs to be located either in the de‐
fault resource folder or in any folder defined by the configuration
file or --resource options!).
All program elements imported by a compilation unit must belong to the
same module as the compilation unit, or must belong to a module that is
explicitly imported in the module descriptor.
The compiler searches for dependencies in the following locations:
· module archives in the specified repositories,
· source archives in the specified repositories, and
· module directories in the specified source directories.
OPTIONS--auto-export-maven-dependencies
When using JBoss Modules (the default), treats all module depen‐
dencies between Maven modules as shared.
--cacherep=url
Specifies the folder to use for caching downloaded modules. (de‐
fault: ~/.ceylon/cache)
--cwd=dir
Specifies the current working directory for this tool. (default:
the directory where the tool is run from)
--encoding=encoding, -E encoding
Sets the encoding used for reading source files(default: plat‐
form-specific).
--flat-classpath
Launches the Ceylon module using a flat classpath.
--javac=option
Passes an option to the underlying java compiler.
--maven-overrides=url
Specifies the xml file to use to load Maven artifact overrides.
See http://ceylon-lang.org/documentation/current/refer‐
ence/repository/maven/ for information. Deprecated: use --over‐
rides.
--no-default-repositories
Indicates that the default repositories should not be used.
--no-osgi
Indicates that the generated car file should not contain OSGi
module declarations.
--no-pom
Indicates that the generated car file should not contain Maven
POM module declarations.
--offline, -L
Enables offline mode that will prevent connections to remote
repositories.
--osgi-provided-bundles=modules
Comma-separated list of module names. The listed modules are ex‐
pected to be OSGI bundles provided by the framework, and will be
omitted from the generated MANIFEST 'Required-Bundle' OSGI head‐
er.
--out=url, -o url
Specifies the output module repository (which must be publish‐
able). (default: ./modules)
--overrides=url
Specifies the xml file to use to load module overrides. See
http://ceylon-lang.org/documentation/current/reference/reposito‐
ry/maven/ for information. Experimental.
--pack200
Try to make the generated car file smaller by repacking it using
pack200.
--pass=secret
Sets the password for use with an authenticated output reposito‐
ry(no default).
--progress
Print progress information.
--rep=url
Specifies a module repository containing dependencies. Can be
specified multiple times. (default: modules, ~/.ceylon/repo,
http://modules.ceylon-lang.org/repo/1)
--resource=dirs, -r dirs
Path to directory containing resource files. Can be specified
multiple times; you can also specify several paths separated by
your operating system's PATH separator. (default: ./resource)
--resource-root=folder-name, -R folder-name
Sets the special resource folder name whose files will end up in
the root of the resulting module CAR file (default: ROOT).
--source=dirs
An alias for --src (default: ./source)
--src=dirs, -s dirs
Path to directory containing source files. Can be specified mul‐
tiple times; you can also specify several paths separated by
your operating system's PATH separator. (default: ./source)
--suppress-warning[=warnings], -W
Suppress the reporting of the given warnings. If no warnings are
given then suppresss the reporting of all warnings, otherwise
just suppresss those which are present. Allowed flags include:
filenameNonAscii, filenameCaselessCollision, deprecation, com‐
pilerAnnotation, doclink, expressionTypeNothing, unusedDeclara‐
tion, unusedImport, ceylonNamespace, javaNamespace, sup‐
pressedAlready, suppressesNothing, unknownWarning, ambiguousAn‐
notation, similarModule, importsOtherJdk, javaAnnotationElement.
--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).
--user=name
Sets the user name for use with an authenticated output reposi‐
tory(no default).
--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, ast,
code, cmr, benchmark.
CONFIGURATION FILE
The compile tool accepts the following options from the Ceylon configu‐
ration file: defaults.offline, defaults.encoding, compiler.source, com‐
piler.resource and repositories (the equivalent options on the command
line always have precedence).
REPOSITORIES
Repositories like those specified with the --rep or --out options can
be file paths, HTTP urls to remote servers or can be names of reposito‐
ries when prepended with a + symbol. These names refer to repositories
defined in the configuration file or can be any of the following prede‐
fined names +SYSTEM, +CACHE, +LOCAL, +USER or +REMOTE. For more infor‐
mation see http://ceylon-lang.org/documentation/1.0/reference/tool/con‐
fig
SPECIFYING javac OPTIONS
It is possible to pass options to the javac compiler by prefixing them
with --javac= and separating the javac option from its argument (if
any) using another =. For example:
· The option --javac=-target=1.6 is equivalent to javac's -target 1.6
and,
· the option --javac=-g:none is equivalent to javac's -g:none
Execute ceylon compile --javac=-help for a list of the standard javac
options, and ceylon compile --javac=-X for a list of the non-standard
javac options.
Important note: There is no guarantee that any particular javac option
or combination of options will work, or continue to work in future re‐
leases.
28 October 2015 ceylon compile(1)