Habituellement, lorsque je construis un projet à l'aide de maven, je divise le projet d'application en plusieurs modules plus petits.
Les projets Gradle ont également plus d'un composant, que nous appelons également les versions multi-projets.
Nous créons d'abord une construction multi-projets:
mkdir cmdgradleproj && cd cmdgradleprojgradle init
À ce moment-là
D: / cmdgradleproj> Exécuter dans le répertoire: tree /f
La structure du projet est la suivante:
│ build.gradle│ gradlew│ gradlew.bat│ settings.gradle│ ├sé. └tilgradle └─wrapper gradle-wrapper.jar gradle-wrapper.properties
Ensuite, créez plusieurs modules. Ici, prenez les modules de noyau et Web comme exemples, et créez d'abord quatre répertoires (les dossiers de test sont utilisés pour écrire des classes de test):
MKDIR CORE / SRC / MAIN / JAVAMKDIR CORE / SRC / MAIN / TESTMKDIR Web / SRC / Main / Javamkdir Web / SRC / Main / Resources
Module de base: contient certains composants communs qui peuvent être utilisés par d'autres modules du programme. Dans l'exemple, il n'y a qu'une seule classe: la classe MessageService renvoie le «Hello World! chaîne. Ce module a deux dépendances: Junit 4.11 et Commons-Lang3.
Module Web: le module contient la classe Helloworld, qui est le début du programme. Il obtient des informations de l'objet MessageService et écrit les informations reçues dans un fichier journal. Le module a deux dépendances: il nécessite le module de base et utilise également LOG4J comme journal.
Maintenant que nous avons créé le répertoire requis, l'étape suivante consiste à configurer la version Gradle, configurant d'abord les projets inclus dans la version multi-projets.
Nous pouvons configurer les projets inclus dans les builds multi-projets via les étapes suivantes:
1. Créer des paramètres. Fichier Gradle dans le répertoire racine du projet racine. Une version Gradle Multi-Project doit contenir ce fichier car elle indique les projets inclus dans la construction multi-projets.
2. Assurez-vous que les projets Web et Core sont inclus dans nos versions multi-projets.
Notre fichier Settings.gradle est le suivant:
inclure «noyau»
inclure «web»
Abréviation: inclure «noyau», «web»
Modifier build.gradle dans le répertoire racine:
// General configuration of all subprojects subprojects { apply plugin: 'java' // apply plugin: 'eclipse' apply plugin: 'idea' version = '1.0' // JVM version number requires sourceCompatibility = 1.8 targetCompatibility = 1.8 // When java is compiled, it will fail due to Chinese characters by default [compileJava, compileTestJava, Javadoc] *. Options * .Encoding = 'utf-8' // définir le numéro de version ext {springVerySion = '4.3.3.Release' HibernAnversion = '5.2.2.Final'} Repositories {mavencentral ()} jar {manifest {attributes ("implementation": "Gradle")}} Configuration {// Autheet-Title ". sont définis ici tous * .Exclure Group: 'Commons-httpclient' all * .Exclud Group: 'Commons-Logging' all * .exclud Group: 'Commons Beanutils', module: 'Commons Beanutils'} dépendances {// SpringSion General. "org.springframework: printemps-norm: $ SpringVersion", "org.springframework: printemps-tx: $ SpringVersion", "org.springframework.data:Spring-data-jpa:1.10.3.release", "org.hibernate: Hibernet-Entitymanageger: $ HibernateSion", "C3P0: C3P0: 0.9.1.2", "MySQL: MySQL-Connector-Java: 6.0.4", "Org.Slf4j: Slf4J-NOP: 1.7.21", "Commons-Fileupload: Commons-Fileupload: 1.3.2", "COM.FASTERXML JACKSON.CORE: JACKSON-DATABID Sur Jar qui n'existe pas dans Maven Ext.Jartree = FileTree (Dir: 'Libs', inclut: '** / *. Jar') ext.rootprojectLibs = nouveau fichier (rootproject.rootdir, 'libs'). getAbsolutepath () ext.jarttree + = filetree (dir: rootProjectLibs, include: '*. JARTREE // Test Dependency TestCompile ("Org.SpringFramework: Spring-Test: $ SpringVersion", "Junit: Junit: 4.12")} // Affichez tous les pots pour compiler dans le projet actuel. tâches listjars (Description: 'Afficher tous les pots de compilation.') << {configurations.compile.each {fichier file -> println file.name}}}Ensuite, vous pouvez modifier Core / Build.gradle pour définir les dépendances du module de base:
// Le nom du package JAR ArchivesBasename = 'Core' // D'autres configurations peuvent également être définies. Ici, la configuration dans le module parent hérite directement que la configuration du module Web doit dépendre du module de base, de sorte que le web / build.gradle est défini comme suit: Appliquer le plugin: "War" Dependances {// Dependency Core Module Compile Project ("Core") compile ("org.spring "org.apache.taglibs: taglibs-standard-implp: 1.2.1") // La dépendance fournie par le système fournit des fourrures fournies ("javax.servlet: javax.servlet-api: 3.1.0", "javax.servlet.jsp: jsp-api: 2.2.1-b03", "javax.servlet.jsp.jstl: javax.servlet.jsp.jstl-api: 1.2.1")} tâche jarwithoutresources (type: jar) {Basename project.name from ("$ builddir / classes / main")} war {Delaterson jarwithoutres from ("$ projectdir / src / main / jarwithoutres from (" $ projectdir / src / main / main ") {y compris à partir de (" $ projectdir / src / main / main ") "* .properties" dans ("web-inf / classes")} classPath = classPath - SourcesetS.main.output classpath filetree (dir: libsdir, inclure: "$ {project.name} - $ {version} .jar")} tâche ('jarpath') << {configurations.runtime.resolol it.toString () + ";" } println (); }3. Compiler le projet
Voir tous les pots:
> gradle listjars // Affichez les dépendances de chaque module:> gradle: noyau: dépendances> gradle: web: dépendances // compiler tous les modules:> gradle build
Comparez le répertoire pour le moment comme suit:
│ Build.gradle│ Gradlew│ gradlew.bat│ settings.gradle│ ├──. taskartifacts.bin│ ├─ raise --Core│ │ Build.gradle│ │ │ ├─ase │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └?ase └─?asest│ └──java│ └───java│ └séna│java│ └sé. └fiques
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.