forked from ceylon/ceylon-runtime
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
48 lines (33 loc) · 2.33 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
CEYLON RUNTIME
This project atm uses Maven for its build.
There are a few steps needed to be able to build and test the project.
1) We need to install Ceylon Language into our local Maven repository.
mvn install:install-file -Dfile=ceylon.language-0.3.car -DgroupId=ceylon.language -DartifactId=ceylon-language -Dversion=0.3 -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true
2) We need to checkout and build (mvn clean install) Ceylon Module Resolver project (CMR).
https://github.com/ceylon/ceylon-module-resolver
The CMR build version must match the one used in this project -- see root pom.xml.
The Runtime uses JBoss Modules to build modular runtime system.
Initially JBoss Modules uses out dist/ directory as its modules repository.
This includes modules we need on the "bootstrap":
* Ceylon Language
* Ceylon Module Resolver
* Ceylon Runtime
* JBoss Modules (as a module info, actual classes are part of system classpath)
dist/ repository is built as part of the testsuite sub-project build.
jars are copied from our Maven repository, while the module.xml information is static.
This is the part that the user needs locally.
To ease things, we create a zipped version of dist/ repository,
and place it under <CEYLON_REPOSITORY>/ceylon-runtime-bootstrap/ceylon-runtime-bootstrap.zip
In order to use this zipped module repository we need to use custom ModuleLoader - DistributionModuleLoader.
(see ceylon.sh script for the actual usage)
DistributionModuleLoader explodes (if not already present) this zipped repository at initialization,
and places the exploded repository under <CEYLON_REPOSITORY>/ceylon-runtime-bootstrap/ceylon-runtime-bootstrap-exploded directory.
You can force update with -Dforce.bootstrap.update=true system property flag.
Afterwards Ceylon Runtime uses Ceylon Module Resolver to get its modules.
By default we use ~/.ceylon/repo as local CMR repository, but different repositories can be mounted.
(proper mounting API is wip)
In order to run your Ceylon app / module, you need to first place it into ~/.ceylon/repo.
Then you can use dist/bin/ceylon.sh to run the app / module.
ceylon.sh expects module name and version as its only parameter.
e.g. ./ceylon.sh hello/1.0.0 --> [full module name]/[version], where default version is 0.0.0 if left out
(I think the version atm needs to be in the form x.y.z[.qualifier]).