Software Build Tools Interoperability (Make, Ant, Maven)
By Freddy Allilaire, Frédéric Jouault (INRIA)
February 2007
Keywords
Interoperability, Build Tools, Ant, Make, Maven.
Overview
In this use case we present how to bridge different build tools between themselves: Make, Ant, and Maven. Make, one of the most common build tool, has its own syntax and can be used only on UNIX platform. Ant is platform-independent and its syntax is XML-based. It is extended using Java classes. Maven is an extension proposed in addition to Ant functionalities. It proposes an easier creation of plug-in and it allows more reusability contrary to Ant. Maven need two build files: project.xml (project descriptor), and maven.xml.
In this case study, from a “Make configuration” we will generate a corresponding “Ant configuration” and “Maven configuration”. The overall approach is summarized in the following figure:
For each build tool, we have defined its metamodel by using the KM3 textual format (Ant, Make, Maven). A visual presentation of these metamodels is also available (Ant, Make, Maven).
The Injection and Extraction phases were implemented by using XML bridges. As the Ant and Maven files are XML-based, we can inject an XML-based file or extract into an XML-based file the content of a model (conforms to the XML metamodel). As a Make is not an XML-based tool, we have created an ad-hoc solution to transform a Makefile into a corresponding XML file.
The Model-to-Model transformation phase was implemented by using ATL model-to-model transformations. Following bridges “Make to Ant” and “Ant to Maven” have been developped with ATL.
We provide below a set of screenshots showing the different input/output files provided/created with this use case:
Related Use Cases
None at the current time.
Download
Acknowledgement
The present work is being supported by the OpenEmbeDD project, and the Usine Logicielle project of the System@tic Paris Region Cluster.