Wenn ich ein Projekt mit Maven erstelle, teilen ich normalerweise das Anwendungsprojekt in mehrere kleinere Module.
Gradle-Projekte haben auch mehr als eine Komponente, die wir auch Multi-Project-Builds bezeichnen.
Wir erstellen zuerst einen Multi-Project-Build:
MKDIR CMDGRADLEPROJ && CD CMDGRADLEPROJGRADLE Init
Zu diesem Zeitpunkt
D: /cmdgradleproj> im Verzeichnis ausführen: tree /f
Die Projektstruktur ist wie folgt:
│ build.gradle│ gradlew│ gradlew.bat│ settings.gradle│ ├─.gradle│ └─3.0│ └─taskArtifacts│ cache.properties│ cache.properties.lock│ fileHashes.bin│ fileSnapshots.bin│ fileSnapshots.bin│ fileSnapshotsToTreeSnapshotsIndex.bin│ taskArtifacts.bin│ └─ Gradle └─Wrapper Gradle-Wrapper.Jar Gradle-Wrapper.Properties
Erstellen Sie dann mehrere Module. Nehmen Sie hier Kern- und Webmodule als Beispiele und erstellen Sie zunächst vier Verzeichnisse (Testordner werden zum Schreiben von Testklassen verwendet):
mkdir core/src/main/javamkdir core/src/main/testMkdir web/src/main/javamkdir web/src/main/ressourcen
Kernmodul: Enthält einige gängige Komponenten, die von anderen Modulen des Programms verwendet werden können. Im Beispiel gibt es nur eine Klasse: Die Messageservice -Klasse gibt die "Hallo Welt" zurück. Saite. Dieses Modul hat zwei Abhängigkeiten: Junit 4.11 und Commons-Lang3.
Webmodul: Das Modul enthält die HelloWorld -Klasse, die der Beginn des Programms ist. Es erhalten Informationen aus dem Messageservice -Objekt und schreibt die empfangenen Informationen in eine Protokolldatei. Das Modul hat zwei Abhängigkeiten: Es benötigt das Kernmodul und verwendet auch Log4J als Protokoll.
Nachdem wir das erforderliche Verzeichnis erstellt haben, besteht der nächste Schritt darin, den Gradle-Build zu konfigurieren und zuerst die im Multi-Project-Build enthaltenen Projekte zu konfigurieren.
Wir können Projekte konfigurieren, die in den folgenden Schritten in Multi-Project-Builds enthalten sind:
1. Erstellen Sie die Einstellungen. Gradle -Datei im Stammverzeichnis des Stammprojekts. Ein Multi-Project-Gradle-Build muss diese Datei enthalten, da sie die im Multi-Project-Build enthaltenen Projekte anzeigen.
2. Stellen Sie sicher, dass Web- und Kernprojekte in unseren Multi-Project-Builds enthalten sind.
Unsere Einstellungen.Dradeldatei lautet wie folgt:
einbeziehen "Kern"
Schließen Sie 'Web' ein
Abkürzung: Schließen Sie 'Core', 'Web' ein
Ändern Sie Build.gradle im Stammverzeichnis:
// Allgemeine Konfiguration aller Subprojekte Subprojekte {Plugin anwenden: 'Java' // Plugin anwenden: 'Eclipse' Plugin anwenden: 'idee' Version = '1.0' // JVM -Version erfordert SourceCompatibilität = 1.8 targetCompatibility = 1.8 // Wenn Java zusammenfasst, ist es für chinesische Charaktere, die mit chinesischen Zeichen versetzt werden, für chinesische Charaktere, die mit chinesischen Zeichen versetzt werden. Javadoc]*. Optionen*.encoding = 'utf-8' // Versionsnummer ext {Springversion = '4.3.3.Release' HibernateVersion = '5.2.. Hier alle*.Exclude Group: 'Commons-httpclient' All*.Exclude Group: 'Commons-Logging' All*.Exclude Group: 'Commons-Beanutils', Modul: 'Commons-Beanutils'} Abhängigkeiten {// allgemeine Abhängigkeitskompilien ("org.springFramework: Spring-Context: "org.springframework: Spring-orm: $ Springversion", org.springframework: Spring-TX: $ Springversion ", org.springframework.data:spring-data-jpa:1.10.3.Release", "org.hibernate: "C3P0: C3P0: 0.9.1.2", "MySQL: Mysql-Connector-Java: 6.0.4", "org.slf4j: SLF4J-NOP: 1.7.21", "Commons-fileeupload: comons-fileUpload: 1.3.2", "Com.fasterxMl. // Abhängig von Jar, das in Maven ext.jartree = Filetree (Dir: 'libs', inklusive: '**/*. Jar') ext.rootProjectLibs = neue Datei (RootProject.Rootdir, 'libbs'). GetAbsoluTepath () ext.jartree += Filetree (DireTree (DireTree (DireTe)). Kompilieren Sie Jartree // TEST-Abhängigkeitstestcompile ("org.springframework: Spring-Test: $ Springversion", "Junit: Junit: 4.12")} // Alle Gläser für kompilieren unter dem aktuellen Projekt anstellen. Task ListJars (Beschreibung: 'Alle kompilen Gläser anzeigen.') << {configurations.comPile.each {Dateidatei -> println -Datei.name}}}Als nächstes können Sie Core/Build.gradle ändern, um die Abhängigkeiten des Kernmoduls zu definieren:
// Der Name des JAR -Pakets archivesbasename = 'core' // Andere Konfigurationen können ebenfalls definiert werden. Hier erbt die Konfiguration im übergeordneten Modul direkt die Konfiguration des Webmoduls, um vom Kernmodul abhängig zu sein. Daher ist das Web/Build.gradle wie folgt definiert: anwenden Plugin: "War" -Deichtern {// Abhängigkeitskernmodul kompilieren (": Core") compile ("org.springFramework: Spring-Webmvc: $ Spring: "org.apache.taglibs: Taglibs-standard-iMPL: 1.2.1") // Die vom System bereitgestellte Abhängigkeit bietet bereitgestelltes Compile ("javax.servlet: javax.servlet-api: 3.1.0", "javax.servlet.jsp: jsp-api: 2.2.1-b0", "javax.servlet.jsp.jstl: javax.servlet.jsp.jstl-api: 1.2.1")} task jarwithoutresources (Typ: jar) {BasisName-Projekt "*.Properties" in ("web-inf/classes")} classPath = classPath-Quellensets.main.output classPath Filetree (Dir: libsdir, inklusive: "$ {project.name}-$ {Version} .jar")} Aufgabe ('Jarpath') << {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{configurations.runturations.runturations.runty.runty.runtime.rruntime.res.Rruntime.Resoly.Resol (). } println (); }3.. Kompilieren Sie das Projekt
Alle Gläser anzeigen:
> Gradle ListJars // Die Abhängigkeiten jedes Moduls anzeigen:> Gradle: Kern: Abhängigkeiten> Gradle: Web: Abhängigkeiten // alle Module kompilieren:> Gradle Build
Vergleichen Sie das Verzeichnis zu diesem Zeitpunkt wie folgt:
│ Build.gradle│ Gradlew│ Gradlew.bat│ Einstellungen.gradle│ ├──. Gradle│ └── - 3.0│ └─inger TaskArtifacts│ cache.Properties│ cache.properties.lock│ FileHashes.bin│ Dateinapshots.Bin│ Dateisnapshotreesnapshots.Bin│snapshotreesnapshots.Bin│Bin│Bin│BinapShotstotreesnapshots.Bin│Bin│Bin│BinapBinapShotstotreesnapshots.Bin│Bin│Bin│Bin│BinaPshotStotreesnapshtex.Bin│Bin│Bin│Bin│BinaPshotSnaps.Bin│Bin│Bin│BinapShotstotreesnapshots. taskArtifacts.bin│ ├───core│ │ build.gradle│ │ │ ├───build│ │ ├───libs│ │ │ core-1.0.jar│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ " └──java│ └───java│ └───java│ └───java│ └────java│ └────jar│ └────jarWithoutResources │ │ MANIFEST.MF │ │ └───war │ MANIFEST.MF │ └────src └───main ├── - Java └─── - Resources
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.