devstory

Construire un projet de modules multiples avec Gradle

View more Tutorials:

Suivez-nous sur notre fanpage pour recevoir des notifications chaque fois qu'il y a de nouveaux articles. Facebook

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:

Peut-être que vous êtes intéressé

Voici des leçons en ligne à part du site web o7planning que nous recommandons. La liste comprend des leçons en ligne et celles en promo.