Construire un projet de modules multiples avec Gradle

View more Tutorials:

1- Introduction

Ce document est basé sur:
  • Eclipse 4.6 (NEON)

Vous voyez le logiciel Gradle avancé. Si vous êtes un débutant de Gradle, vous devriez consulter la documentation pour les débutants Gradle ( Gradle Hello world) à:

2- Le modèle de l'exemple

C'est l'exemple modèle dans ce document.
L'objectif de les instructions est:
  1. Comment un module utilise autre module dans Gradle
  2. Emballage d'un module multiple utilisant Gradle (sortie: jar, war).
  3. Exécuter l'application Web sur Gradle Tomcat Plugin.

MathWebApp: est un projet de l'application web
MathLibrary: est un  Project bibliothèque, comprend des classes utilitaires utilisées par  MathWebApp.

GradleMain: est un projet qui sert à emballer deux projets ci-dessus, c'est un module principal, et 2 projets ci-dessus sont considérés comme ses 2 module enfants. GradleMain va:
  • Emballage MathLibary en fichier jar
  • Emballage​​​​​​​ MathWebApp en fichier war.

3- Créer le projet MathLibrary

  • File/New/Other...
Saisissez:
  • Project Name: MathLibrary
Le projet est créé.
Créer la classe  MathUtils:
La classe  MathUtils a deux méthodes de sommer 2 chiffres, cette classe se trouve dans le projet  MathLibrary et sera utilisée dans le projet  MathWebApp.
package org.o7planning.mathutils;

public class MathUtils {

  public static int sum(int a, int b) {
      return a + b;
  }

}

4- Créer le projet MathWebApp 

De la même facon, créez le nouveau projet  MathWebApp.
  • Ouvrez le fichier build.gradle
MathWebApp est une application web, elle utilise le projet MathLibrary comme une bibliothèque. Par conséquent, vous devez déclarer que  MathWebApp dépend de  MathLibrary.
MathWebApp/build.gradle
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'war'  

apply plugin: 'com.bmuschko.tomcat'

repositories {
   jcenter()
}

dependencies {    

   testCompile 'junit:junit:4.12'
   
 
   providedCompile "javax.servlet:javax.servlet-api:3.1.0"      
   
   compile project(':MathLibrary')
}


dependencies {
   def tomcatVersion = '7.0.59'
   
   tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}",
          "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}",
          "org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}"
}


buildscript {

   repositories {
       jcenter()
   }

   dependencies {
       classpath 'com.bmuschko:gradle-tomcat-plugin:2.2.2'
   }
}
Chaque fois que vous changez  build.gradle vous devez utiliser l'outil  Gradle pour rafraîchir le projet.
Créez le fichier  index.jsp, il utilisera la classe utilitaire  MathUtils dans le projet MathLibrary.
index.jsp
<html>
<body>
<h2>Hello World!</h2>

<%

int a = 100;
int b = 200;

int c = org.o7planning.mathutils.MathUtils.sum(a,b);

out.println("<h2>"+ c+"</h2>");

%>

</body>
</html>

5- Créer le projet GradleMain

De la même manière, créez le projet GradleMain:
GradleMain est un projet qui construit 2 projets  MathLibrary et  MathWebApp. Vous devez définir ces deux projets dans  settings.gradle.
GradleMain/settings.gradle
rootProject.name = 'GradleMain'


include   ':MathLibrary', ':MathWebApp'
project(':MathLibrary').projectDir = new File(settingsDir, '../MathLibrary')
project(':MathWebApp').projectDir = new File(settingsDir, '../MathWebApp')
Et vous devez déclarer que  GradleMain dépend aux  MathLibrary & MathWebApp.
GradleMain/build.gradle
apply plugin: 'java'
apply plugin: 'eclipse'

repositories {
    jcenter()
}

dependencies {   
 
    testCompile 'junit:junit:4.12'     
}

dependencies {
    compile project(':MathLibrary')
    compile project(':MathWebApp')
}
Chaque fois que vous changez  build.gradle vous devez utiliser l'outil  Gradle pour rafraîchir le projet.

6- Créer des projets

Passez à l'onglet "Gradle Task" et sélectionnez "build/Run Gradle Tasks".
Gradle va construire le projet dans un ordre qui garantit que:
Le résultat:
Voir sur l'onglet  Console:

7- Exécuter MathWebApp

View more Tutorials: