2. • Consultant et formateur chez Zenika
• Mes spécialités
– Ant/Ivy
– Maven
– Gradle
– Hudson
• Contributeur Hudson
• Introduction et mis en place de Gradle chez un très grand compte
industriel
Présentation Gradle 2
3. • Système de build pour la JVM Java, focalisé sur le build
des applications d'entreprise
• Modèle de description du build très riche à travers une
API
• Flexible à la Ant avec les conventions de Maven à la
demande
• Une gestion avancée d'un projet multi-modules
• Support et insertion totale dans des infrastructures Maven
et Ant/Ivy existantes
Présentation Gradle 3
6. Distribution Gradle
CORE UI WRAPPER OPEN-API DOCS
api
java groovy maven osgi code-quality
war jetty scala eclipse project-reports
plugins
Ant Ivy Maven Ant Tasks Groovy
outils
checkstyle codeNarc webdav Autres dépendances
Librairies tierces
Présentation Gradle 6
7. Écrire un script Gradle consiste à configurer un objet Gradle Project
configurations
repositories
dependencies
build.gradle
Project
ant
task artifacts
API
Présentation Gradle 7
8. Un script de build Gradle est défini par un ensemble de tâches sur
lesquelles sont ajoutées des actions qui sont des closures Groovy
<!-- build.gradle -->
task(hello)
hello.doFirst{ > gradle hello
println "Hello World" :hello
Hello World
for (int i:[1,2,3]){ 123
print i
} > gradle distribution
} :distribution
Print Distribution
task(distribution).doFirst {
println "Print Distribution" > gradle release
} :distribution
Print Distribution
:release
task(release) Print Release
release.dependsOn(distribution)
release.doFirst{
println "Print Release"
}
Présentation Gradle 8
9. task mycopy (type:Copy){
from(file('resources'))
into(file('target')) ConventionTask
include('**/*.txt', '**/*.xml')
}
myCopy.include('**/*.properties') SourceTask AbstractCopyTask
Javadoc Copy AbstractArchiveTask
Zip Tar
public class Copy extends AbstractCopyTask {
public AbstractCopyTask from(Object... sourcePaths);
public AbstractCopyTask into(Object destDir);
}
Jar
War
Présentation Gradle 9
14. Chaque plugin déclaré apporte un ensemble de tâches et de propriétés
CORE UI WRAPPER OPEN-API DOCS
api
java groovy maven osgi code-quality
war jetty scala eclipse project-reports
plugins
Ant Ivy Maven Ant Tasks Groovy
outils
Présentation Gradle 14
21. • Amélioration constante de la DSL pour encore plus de richesse et
de simplicité
• Support amélioré dans les IDE
• Une abstraction de Ivy pour encore un gestionnaire de
dépendance plus avancé
• Parallélisation/Distribution des builds
• Réutilisation des plugins Maven et import de projets Maven
• Simplification dans la phase de publication des artefacts
Présentation Gradle 21
23. • Gradle vous offre toute la richesse pour exprimer vos chaines de
build au plus près de vos besoins
• Gradle fournit une approche déclarative de premier plan
• Gradle est un système de build complet et alternatif pour builder
vos applications
• Gradle s'insère nativement en lecture et en écriture dans votre
existant pour l'enrichir
Présentation Gradle 23