codestory

Build ein Projekt mit mehreren Modulen verwenden Gradle

  1. Die Vorstellung
  2. Das Modell des Beispiels
  3. MathLibrary Projekt erstellen
  4. MathWebApp Projekt erstellen
  5. GradleMain Projekt erstellen
  6. Die Applikation bauen (build)
  7.  MathWebApp laufen

1. Die Vorstellung

Das Dokument wird geschrieben auf die Basic von ...:
  • Eclipse 4.6 (NEON)

Sie sind gerade, das fortgeschrittene Dokument über Gradle zu lesen. Wenn Sie als der Anfänger mit Gradle sind, sollen Sie zuerst das Führungsdokument für die Anfänger mit Gradle (Hello world Gradle) lernen bei:

2. Das Modell des Beispiels

Das ist das Bild für die Bezeichnung des Beispiel im Dokument
Das Ziel der Hinweise ist:
  1. Wie benutzt eine Module die andere Module in Gradle
  2. die simultane Einpackung der unterschiedlichen Module durch Gradle (output: jar, war).
  3. die Web App auf Gradle Tomcat Plugin laufen.

MathWebApp: ist ein WebApp project
MathLibrary: ist ein Bibliothek Project, einschließlich die Utility Klasse, die durch MathWebApp.benutzt werden

GradleMain: ist ein Projekt zur Einpackung der oben 2 Projekte. Es ist ein Vaterprojekt und die 2 oben Projekte gelten als seine 2 untergeordneten Module. GradleMain wird:
  • MathLibary zur file jar einpacken
  • MathWebApp zur file war einpacken.

3. MathLibrary Projekt erstellen

  • File/New/Other...
Geben Sie ein
  • Project Name: MathLibrary
Das Project wird erstellt.
Erstellen Sie die Class MathUtils:
Class MathUtils hat eine Methode für die Kalkulation der Sume von 2 Nummer, diese Class liegt im Projekt MathLibrary und wird im Projekt MathWebApp.benutzt
package org.o7planning.mathutils;

public class MathUtils {

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

}

4. MathWebApp Projekt erstellen

Ähnliche Erstellung des Projekt MathWebApp.
  • Öffnen Sie die File build.gradle
MathWebApp ist eine Webapplikation. Es benutzt das Projekt MathLibrary wie eine Bibliothek. Deshalb sollen Sie MathWebApp abhängig von MathLibrary.anmelden
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'
   }
}
Wenn es gibt jede Änderung mit build.gradle, sollen Sie Gradle benutzen um das Projekt zu aktualiesieren
Erstellen Sie die File index.jsp,und sie benutzt die Utility Class MathUtils im Projekt 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. GradleMain Projekt erstellen

ähnliche Erstellung eines Projekt GradleMain:
GradleMain ist Projekt zum Aufbau der 2 Projekte MathLibrary und MathWebApp. Sie sollen diese 2 Projekte in settings.gradle definieren
GradleMain/settings.gradle
rootProject.name = 'GradleMain'


include   ':MathLibrary', ':MathWebApp'
project(':MathLibrary').projectDir = new File(settingsDir, '../MathLibrary')
project(':MathWebApp').projectDir = new File(settingsDir, '../MathWebApp')
Und melden Sie GradleMain abhängig von MathLibrary & MathWebApp.an
GradleMain/build.gradle
apply plugin: 'java'
apply plugin: 'eclipse'

repositories {
    jcenter()
}

dependencies {   
 
    testCompile 'junit:junit:4.12'     
}

dependencies {
    compile project(':MathLibrary')
    compile project(':MathWebApp')
}
Bei jeder Änderung der build.gradle sollen Sie die Gradle benutzen um das Projekt zu aktualliseren

6. Die Applikation bauen (build)

Wechseln Sie den Tab "Gradle Task" und wählen Sie "build/Run Gradle Tasks".
Gradle wird die Projekte nach einer Reihenfolge bauen (build) um sicherzustellen
Das Ergebnis
Auf Tab Console schauen:

7.  MathWebApp laufen