Ceylon.build by Loïc Rouchon

43 %
57 %
Information about Ceylon.build by Loïc Rouchon
Technology

Published on February 5, 2014

Author: UnFroMage

Source: slideshare.net

Description

Discover how the Ceylon build system works and how it will evolve.

Introduction to ceylon.build By Loïc Rouchon

Executive Summary • • • • What is ceylon.build Why ceylon.build Definitions Features

What is ceylon.build • Tool to run goals from command line • Aims to be an alternative to Ant / Maven / Gradle

Why ceylon.build • Write code, not XML • Type-safety • Built-in module system

Definition • Goal: – A function – With a name – And dependencies on other goals

First syntax attempt import ceylon.build.engine { build } import ceylon.build.task { Goal } import ceylon.build.tasks.misc { echo } void run() {     build {         Goal {             name = "hello";             echo("hello")         },         Goal {             name = "bye";             echo("bye")         }     }; }

First syntax attempt import ceylon.build.engine { build } import ceylon.build.task { Goal } import ceylon.build.tasks.misc { echo } void run() {     build {         Goal {             name = "hello";             echo("hello")         },         Goal {             name = "bye";             echo("bye")         }     }; } • Hard to read for an IDE plugin

First syntax attempt import ceylon.build.engine { build } import ceylon.build.task { Goal } import ceylon.build.tasks.misc { echo } void run() {     value bar = Goal {         name = "bar";         echo("bar")     }     value foo = Goal {         name = "foo";         dependencies = [bar];         echo("foo")     }     build { foo, bar }; } • Hard to read for an IDE plugin • Dependencies break Tree-like syntax

Future syntax import ceylon.build.task { goal } import ceylon.build.tasks.misc { echo } "Say Hello" goal shared void hello() {     echo("hello"); } "Say Bye" goal shared void bye() {     echo("bye"); }

Command line usage Usage: ceylon run ceylon.build.runner your.build.module [<goal...>] Or, if your build module is in build folder: ceylon build [<goal...>] $ ceylon build hello $ ceylon build hello bye ## ceylon.build # running goals: [hello] in order # running hello() hello world ## success ­ duration 0s ## ceylon.build # running goals: [hello, bye] in order # running hello() hello # running bye() bye ## success ­ duration 0s

Import a set of goals Goal set definition Your build module import ceylon.build.task { goal } import ceylon.build.tasks.misc { echo } import ceylon.build.task { include } shared class FooBar() {     goal shared void foo() {         echo("foo");     }     goal shared void bar() {         echo("bar");     } } include shared fooBar = FooBar();

Dependency management • A goal can define dependencies on other goals – Dependencies will be executed prior to this goal – Each goal requested (directly or by dependency) will only be executed once

Dependency management import ceylon.build.task { goal } import ceylon.build.tasks.misc { echo } goal { dependencies = [`function bar`]; } shared void foo() {     echo("foo"); } goal shared void bar() {     echo("bar"); } $ ceylon build foo ## ceylon.build # running goals: [bar, foo] in order # running bar() bar # running foo() foo ## success ­ duration 0s

Useful links • Github – https://github.com/ceylon/ceylon.build • Engine documentation: – http://modules.ceylon-lang.org/repo/1/ceylon/build /engine/1.0.0/module-doc/ • Task API documentation: – http://modules.ceylon-lang.org/repo/1/ceylon/build /task/1.0.0/module-doc/

Q&A • Questions! Answers?

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Ceylon: First Ceylon Tour in Paris

Ceylon.build by Loïc Rouchon. ... the turnout and to answer the questions we got when we announced the first Ceylon Tour in Paris, yes we ...
Read more

Ceylon d‘ici à l‘infini : tour d‘horizon et le futur ...

Ceylon est un nouveau langage de programmation élégant pour la JVM et les VMs JavaScript, fait pour le travail en équipe. Mais plus que ça, c‘est une ...
Read more

Ceylon: Blog tagged conference

Blog tagged conference UK JUG tour ... came to present us ceylon.build and wanted our opinion, ... Ceylon.build by Loïc Rouchon.
Read more

Ceylon d‘ici à l‘infini : tour d‘horizon et le futur ...

Ceylon d‘ici à l‘infini : tour d‘horizon et le futur ... on Jun 23, 2015. Report Category: Engineering
Read more

Devoxx France 2014 - Exemple de présentation

ceylon.build •Démarré par Loïc Rouchon
Read more

Ceylon team blog

2016-08-02T00:00:00+00:00 Stéphane Épardaud Ceylon 1.2.2 was released back in March, and at the time it shipped with a new feature that did not ...
Read more