Git Product home page Git Product logo

ceylon.build's Introduction

ceylon.build

Ceylon task based build system.

The goal of this module is to provide a goal/task based build engine and common tasks. It will also provide helpers to create your own tasks.

License

The content of this repository is released under the ASL v2.0 as provided in the LICENSE file that accompanied this code.

By submitting a "pull request" or otherwise contributing to this repository, you agree to license your contribution under the license mentioned above.

Compilation and tests

To build and install ceylon.build run following command: ant clean publish

To run the tests: ant test

ceylon.build is composed of following modules:

Goal/Task API:

API to define your own Goals

Runner:

Command line interface launching the engine

Engine:

Resolve goals dependencies and goals execution

Command line tasks:

Tasks to launch a command in a new process

Ceylon tasks:

Tasks to compile, run, test, document ceylon modules

Files tasks:

Tasks to copy / delete files and directories

Ant tasks:

Wrapper to use Apache Ant tasks

Usage

Create a build module. A build module is a standard ceylon module. Convention is that it is located in a build-source folder and is named build/1 so that ceylon build command is able to find it without specifying its name/version.

This build module should contain function declarations annotated with goal annotation.

A goal is a function that can be launched by the engine with a name and dependencies (possibly empty) to other goals. A goal can be referenced by its name from command line.

Here is an example of how to define a simple goal:

goal
shared void hello() {
    print("Hello World!");
}

More details are available in ceylon.build.task ceylon doc.

When ceylon build is launched, it will build the goal graph and run requested goals and their dependencies.

Arguments can be passed to each goal task using the -Dgoal:argument.

For example, if compile goal has support for --javac argument and doc goal for format and --source-code arguments, then, the following command can be used: ceylon build test doc -Dcompile:--javac=-g:source,lines,vars -Ddoc:--non-shared -Ddoc:--source-code

Console

A simple interractive console is provided for running top level goals defined in a module:

goal
shared void echo() {
    print("Hello World!");
}

To start the console, launch command ceylon build --console

    Available goals:
    echo
    
    > echo
    ## ceylon.build: 
    # running goals: [echo] in order
    # running echo()
    Hello World
    ## success - duration 0s
    Success

ceylon.build's People

Contributors

loicrouchon avatar henningb avatar akberc avatar vietj avatar fromage avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.