当前位置:网站首页>Résumé des connaissances de gradle

Résumé des connaissances de gradle

2022-07-06 23:32:00 Georgelin98

GradleIntroduction

GradleContexte:

  • Quand il n'y avait pas d'outils de gestion de projet au début,En ce qui concerne l'adoption d'un paquet de tiers dont dépend le projet:Copie tripartitejarPaquet local,Et ajouter àlibSous la table des matières,L'inconvénient est évident,Gestion complexe et sujette aux conflits.
  • Ant:2000Publié en,PurejavaCompilation
  • Maven:2004Publié en,Adoptionpom.xmlGestion des projets
  • Gradle:2012Année,googleUn outil de gestion de projet approuvé

GradleIntroduction:

  • GradleEst un outil de construction d'automatisation open source,Prise en charge des environnements multilingues,SousAnt、MavenL'influence de la pensée,C'est le grand succès des deux,Comparé àAntNon standard,MavenConfiguration complexe pour、Plus de limites de cycle de vie,GradlePlus normatif et flexible,Peut être utiliséDSL(Langues propres au domaine,Par exemple:Groovy)Écrire une construction,Les scripts sont plus élaborés.Ce cours est basé surGradle7Explication.
  • Avantages:
    ①Flexibilité:Par rapport à Maven、Ant Et les outils de construction,Gradle Offre une gamme de API Permet de modifier ou de personnaliser le processus de construction d'un projet.
    ② Granularité :Compilation du code source, Compilation des ressources , Un seul. TaskDe,Nous pouvons modifiertask Pour obtenir un contrôle fin .
    ③Extensibilité:Gradle Prise en charge du mécanisme plug - in,Donc nous pouvons réutiliser ces plugins,C'est aussi simple et pratique que de réutiliser une bibliothèque.
    ④Compatibilité:Gradle Non seulement il est puissant en soi , Et il est compatible avec tous les Maven、AntFonction,C'est - à - dire,Gradle Tirer parti de tous les outils de construction .
    ⑤SpringAdoption du code sourceGradleGérer
  • Désavantages:
    ① Chaque version a beaucoup changé par rapport à la dernière , Pas de meilleure compatibilité vers le haut .
    ②Coût élevé de l'apprentissage,groovyLangage de script
  • GradleComposition:
    Insérer la description de l'image ici

GradleConfiguration de l'installation:

  • Adresse:Téléchargement sur le site officiel
  • Décompresser sur place après téléchargement:
    ①binary-onlyVersion(-binSuffixe): Exécutable seulement
    ②completeVersion(-allSuffixe): En plus de l'exécutable contient Gradle Description du code source et de la documentation du code source
  • Décompresser après téléchargement,Configurer les variables d'environnement:
    ①NouveauGRADLE_HOMEVariables d'environnement,Oui.gradleConfiguration du Répertoire racine
    ②Inpath Ajouter un article %GRADLE_HOME%\bin,Similaire àJDKOuMavenConfiguration de
    ③Ouvre.CMD,Mise en œuvregradle -v, Une sortie réussie signifie que la configuration de l'installation est terminée
  • Attention!: Les versions des projets sont différentes dans le travail réel , Ne pas utiliser la configuration locale gradle,C'est l'adoptionwrapperDe la manière dont.

GradleDétails:

  • GradleMoyenne2Gros objets:ProjectEtTask.
    ① Un script de composant est un project,N'importe lequel.GradleLes constructions sont toutes faites par un ou plusieursprojectComposition, Vous pouvez mettre un project Comparé à un pom Module ou un jar,ChaqueprojectTous les deux.groovyFichier script.
    ②task Comme son nom l'indique, c'est une tâche. ,C'est...GradlePlus petite Unit é d'exécution,Similaire à unmethodOufunctionFonctions,Comme Compiler、Emballez、GénérerjavadocAttendez.,UnprojectPlus d'untasks.

GradleConstruireWeb

CréationGradleProjets:

  • Création manuelle:
    ①Mise en œuvregradle initCréer un projet
  • Construction rapide(https://start.spring.io/):
    ①GradleEditionSpringBoot
    ②MavenEditionSpringBoot

Analyse de la structure du projet:

├─build.gradle                        ①
├─gradlew                             ②
├─gradlew.bat						  ③
├─settings.gradle                     ④
├─gradle                              ⑤
│  └─wrapper                          
│      ├─ gradle-wrapper.jar          
│      ├─ gradle-wrapper.properties   
└─src                                 ⑥
    ├─main                            
    └─test
  • 1. Profil à lire lors de la compilation automatique du projet . Par exemple, spécifiez le paquet de dépendance du projet, etc. .build.gradeIl y en a deux.,L'un est global, L'un est dans le module .Globalbuild.grade Le paramètre principal est de déclarer la source de l'entrepôt ,gradle Description du numéro de version, etc. .
  • 2.linuxEn basgradleScript d'environnement,Peut être exécutégradleDirectives,Par exemple::./gradlew build.
  • 3.windowsEn basgradleEnvironnement,Peut être exécutégradleDirectives.
  • 4. Contient quelques paramètres nécessaires ,Par exemple, Relation paresseuse entre les tâches ou les projets, etc. , Peu importe le nombre de sous - modules , Il n'y aura qu'un seul fichier , Et doit être dans le projet racine .
  • 5.Contientwrapper Le dossier et 2Sous - fichiers,La fonction est::Peut être installé automatiquementgradleEnvironnement.
  • 6.Code source du programme.

build.gradleInfrastructure:

/******** Procédure ordinaire gradle initInitialisation ******/
plugins {
    // Apply the java plugin to add support for Java
    id 'java'
    ...
}
repositories {
    // Use jcenter for resolving dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
}
dependencies {
    implementation 'com.google.guava:guava:27.1-jre'
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.2'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.4.2'
}
application {
    mainClassName = 'first.init.App'
}
test {
    useJUnitPlatform()
}

/******** SpringBoot Configuration de base du projet ******/
plugins {
	id 'org.springframework.boot' version '2.6.4'
	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
	id 'java'
}

group = 'com.it235'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
	useJUnitPlatform()
}
  • mavenCentral()EtjCenter()La différence:
    ①mavenCentral:MavenEntrepôt central,http://repo1.maven.org/maven2/,ParSonatypeServices fournis par la société.C'est...Apache Maven、SBT Et d'autres entrepôts par défaut pour construire des systèmes , Et peut être facilement Apache Ant/Ivy、Gradle Et d'autres outils . Organisation open source, par exemple ApacheSoftware Foundation、EclipseFondation、JBoss Et de nombreux projets open source personnels publient des artefacts dans un entrepôt central . maven L'entrepôt central a désactivé la navigation de contenu ,Oui.http://search.maven.org/ Éléments de requête .
    ②jCenter:C'est parJFrogFourni par la sociétéBintrayDansJavaEntrepôt. C'est le plus grand du monde. JavaEtAndroid Entrepôt de composants logiciels libres . Tout le contenu est distribué sur le réseau de distribution de contenu (CDN)Utiliser le chiffrementhttpsAccès à la connexion.JCenter- Oui.Goovy Grape Entrepôt par défaut à l'intérieur ,GradleSoutien intégré(jcenter()Entrepôt), Très facile à (Sauf peut - êtreMavenAu - delà) Configurer dans d'autres outils de construction .
    JCenterComparé àmavenCenter Plus de composants ,Les performances sont également meilleures. Mais certains composants n'existent que mavenCenterMoyenne.

IDEUtiliserGradle:

  • Settings—》GradleConfigurablegradle_home, Mais si vous configurez l'utilisation ultérieure, il y aura beaucoup de trous ,Parce queIDEAPar défautgradle-wrapper Téléchargement de , Commençons par la configuration générale ,Comme le montre la figure ci - dessous::
    Insérer la description de l'image ici
    Insérer la description de l'image ici
  • Mais lorsque vous importez un projet , Le programme téléchargera un wrapperQuestions connexeszipSac:
    Insérer la description de l'image ici
  • Pourquoi est - ce arrivé?Suivez - moi.mavenC'est différent.,C'estWrapperQu'est - ce que ça fait??
    ①Gradle-WrapperC'est la simplification.GardleInstallation et déploiement de, Le point de départ est de laisser gradle Aucun des projets n'a besoin d'un environnement d'installation distinct , Le projet reconnaît automatiquement l'environnement , Si vous ne trouvez pas wrapper.propertiesMême versionGardle,IDEA Je vais t'en télécharger un. gradleEnvironnement, Le point de départ officiel est bon , Voyons ce que ces configurations signifient .
# distributionBaseEtdistributionPathEst utilisé avec,Désignationgradle Position de stockage après décompression 
# GRADLE_USER_HOMEReprésente le répertoire des utilisateurs,
	# windowsSystème:c:\window\<user-name>\.gradle\
	# linux- Oui.$HOME/.gradle
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists

#  Spécifier une version gradleTélécharger l'adresse
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-bin.zip

# zipStoreBaseEtzipStorePathEn association avec,Spécifier le téléchargementgradle.zipLieu de stockage;
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

GroovyBase grammaticale

GroovyIntroduction:

  • Groovy Est basé sur JVM Le langage dynamique de , Sa grammaire et Java Similaire, Enfin, il faut Compiler .class InJVMCours..GroovyEntièrement compatibleJava Et sur cette base, de nombreux types dynamiques et caractéristiques flexibles ont été ajoutés , Par exemple, prise en charge des fermetures ,SoutienDSL(Langues propres au domaine), Est un langage de script dynamique très flexible .
  • Pour exécutergroovy Le script pour doit être installé groovyEnvironnement,Ou utiliserJavaDeClassLoaderPour appeler.
  • Adresse:Groovy Lien de téléchargement de l'installation de l'environnement
  • Téléchargements recommandés3.0Version, Après le téléchargement, il est recommandé de mettre CDisqueC:\Program Files\groovy\Sous la table des matières,Et configurerGROOVY_HOMEEtPathC'est tout.

GroovyDétails:

IngénierieProject

ProjectIntroduction:

  • IngradleMoyenne,Chaquebuild.gradleLe fichier correspond à unProjectExemple,On est là.build.gradle Contenu écrit dans ,C'est l'équivalentProject Propriétés ou méthodes de l'Instance .
  • Lors de l'initialisation de la construction ,Gradle Les étapes d'Instanciation sont les suivantes: :
    ① Créer un SettingsExemple,UnSettingsL'exemple en est un.settings.gradleDocumentation
    ②PourSettingsConfiguration de l'Instance, Numériser et analyser la configuration par niveau de configuration settings.gradleDansproject.(Parmi euxsettings La propriété la plus importante est include)
    ③Pour chaqueprojectCorrespondantbuild.gradlePour commencer,Et créerProjectExemple(Chargez iciproject Dans l'ordre suivant le niveau de configuration précédent , Chargement par balayage de largeur , Cela garantit qu'une fois le module parent chargé , Sous - modules à charger )
  • Un tout.project Se compose des objets suivants ( En fait, il ne se compose que d'attributs et de méthodes ):
    Insérer la description de l'image ici

Propriétés:

  • Les propriétés intégrées peuvent être assignées directement ,Aucune déclaration n'est requise:
group = 'com.it235'
version = '1.0.0'
  • Les propriétés personnalisées peuvent être utilisées avec groovySyntaxe,Peut également être associé àjavaSyntaxe combinée:
//groovyDéfinir les propriétés
def pname = "projectName:" + project.name

//javaType de réception
String pname = "projectName:" + project.name
  • Utiliserext Espace de noms pour étendre les propriétés , Peut être défini dans project、task、subproject Lire et mettre à jour :
ext.prop1 = "it"
ext.prop2 = "Programmation"
  • Champ d'application de l'attribut:
    ① En lisant et en écrivant les propriétés ,Project Les recherches seront effectuées dans l'ordre suivant , Une fois qu'une propriété a été trouvée dans une plage, elle est retournée .Si vous ne trouvez pas,Une exception sera lancée.
    <1>Project Objet lui - même. Les attributs de cette gamme comprennent Project Les classes de mise en œuvre sont définies comme suit: getters Et setters Toutes les propriétés de la méthode .Par exemple,:project.getName() La méthode correspond. name Propriétés. Quant à la lisibilité et à l'écriture de ces attributs, elle dépend de leur définition getters Ousetters Méthodes.
    <2>Project DeextPropriétés ( extra ) .Chaque Project Maintient une cartographie des attributs supplémentaires , Il peut contenir n'importe quel nom -> Paires de valeurs.Après la définition, Les propriétés de ce champ d'application sont lisibles en écriture .Par exemple,:project.ext.prop1 = ‘it’ .
    <3> Ajouté par plug - in à Project Propriétés étendues dans ( extensions ) . Chaque extension peut être utilisée comme propriété en lecture seule , Son nom est le même que celui de l'extension .Par exemple,:project.android.compileSdkVersion .
    <4> Ajouter par plug - in à Project Propriétés de la Convention dans ( convention ) .Le plug - in peut passer par Project De Convention Objet Project Ajouter des propriétés et des méthodes . La lisibilité et l'écriture des attributs de cette plage dépendent de l'objet de contrainte .
    <5>Project Moyenne Tasks .Peut être utilisé Task Le nom de est accessible en tant que nom de propriété task. Les propriétés de cette plage sont en lecture seule .
    <6>ext Les attributs et les attributs convenus pour héritent du parent du projet , Récursion vers l'élément racine . Les propriétés de cette plage sont en lecture seule .
  • FréquentprojectPropriétés:
Nom de la propriétéDescription
allprojects Collection contenant cette entrée et ses enfants .
buildDir Répertoire compilé du projet actuel (Génération automatique)Par défaut porjectDir/build
defaultTasks L'ensemble de noms des tâches par défaut pour le projet en cours , Ces tâches par défaut sont exécutées lorsque la construction actuelle ne fournit pas de noms de tâches
group Nom du Groupe pour le projet en cours
logger LOGGER pour le projet en cours ,Peut être utilisé dans build Écrire un journal dans un fichier
name Nom de cet article
parent Parent de cet article
path Le chemin absolu de ce projet
projectEn coursprojectInstance objet
rootDir Racine de ce projet . Le répertoire racine est le Répertoire du projet pour le projet racine
rootProject Racine dans la hiérarchie actuelle du projet project
subprojects Collection de sous - projets du projet en cours
tasksDe ce projettaskEnsemble.
version Version de cet article

Méthodes:

  • Champ d'application de la méthode:
    ①Project Objet lui - même
    ②build.gradle Fichier script
    ③ Ajouter par plug - in à Project Extension in ( extensions ) . Chaque extension peut être considérée comme un paramètre de fermeture ou Action Méthode.
    ④ Méthodes convenues pour ajouter des plug - ins au projet ( convention ) . Le plug - in peut passer par le projet Convention Objet pour ajouter des propriétés et des méthodes au projet .
    ⑤Dans le projet Tasks .Chaque Task Ajoute une méthode , Le nom de la méthode est le nom de la tâche , Le paramètre est une seule fermeture ou Action . Cette méthode utilise les fermetures fournies pour appeler les tâches connexes Task.configure( groovy.lang.Closure ) Méthodes.
  • FréquentProjectMéthodes:
MéthodesDescription
afterEvaluate Vous pouvez ajouter une fermeture , Il sera mis en oeuvre dès que l'évaluation du projet sera terminée . Lors de l'exécution d'un fichier de construction qui appartient au projet , Ces auditeurs sont informés .
allprojects Configurer le projet actuel et chacun de ses sous - projets
apply Appliquer zéro ou plusieurs plug - ins ou scripts .
beforeEvaluate Ajouter une fermeture , Il sera exécuté immédiatement avant le début de l'évaluation du projet
configure Configurer la collection d'objets en fermant .
copy Copier le fichier spécifié
defaultTasks Définir le nom de la tâche par défaut pour ce projet . Utilisez - les lorsque vous n'avez pas fourni de nom de tâche au début de la construction .
deleteSupprimer les fichiers et répertoires
execExécuter des commandes externes
file Résoudre le chemin du fichier par rapport au Répertoire du projet pour ce projet
findProject Localiser les éléments par chemin . Si le chemin est relatif , Est interprété par rapport à l'article .
findProperty Trouver des propriétés spécifiques ,Si vous ne trouvez pas, Renvoie la valeur de l'attribut donné ou null
getAllTasks Renvoie une carte des tâches incluses dans ce projet
hasProperty Détermine si cet article a les propriétés données
javaexecMise en œuvre Java Catégorie principale
javaexecExécution externe Java Processus.
mkdir Créer un répertoire et retourner un fichier pointant vers lui .
property Renvoie la valeur d'un attribut donné . Cette méthode localise les propriétés comme suit :
setProperty Définir les propriétés de cet article . Cette méthode recherche une propriété avec un nom donné à l'endroit suivant , Et définissez l'attribut au premier endroit où il trouve l'attribut .
subprojects Configurer les sous - projets de ce projet
taskCréationTask Avec le nom donné a Et l'ajouter à ce projet
uri Résoudre le chemin du fichier à URI, Répertoire des projets relatifs à ce projet
  • Exemples de méthodes communes :
    ①buildscript{}:Configuration actuellegradle Informations de construction ou dépendances que le script lui - même doit utiliser
    ②configurations{}: Configurer pour utiliser les dépendances déclarées à des fins spécifiques
    ③repositories{}:Configuration de l'entrepôt
    ④dependencies{}:IngradleMoyennedependencies{}C'est un citoyen de première classe,Ça décritconfigurations{} Ressources de tiers dépendantes du Groupe .
    ⑤allprojects{}: Configurer les dépendances nécessaires pour ce projet et chaque sous - projet . En général, dans un scénario de projet multi - modules, nous configurons les parties communes dans le projet racine allprojectsMoyenne.
    ⑥subprojects{}:Configuration du sous - module
    ⑦sourceSets{}: Configurer les informations du code source
    ⑧artifacts{}: Configurer les informations sur les composants du produit à livrer
    ⑨publishing{}:deploy Projet actuel à l'entrepôt

Tâches d'ingénierie

Description de la Mission:

  • La Mission estgradleUnit é d'exécution minimale pour,Unbuild.gradleC'est une série detaskComposition,L'importance est évidente.

Plug - in d'ingénierie

Introduction au plug - in:

  • Les plug - ins peuvent encapsuler une série de tâches ,Par exemple Compiler,Tests,Emballage, etc..IDEA、VsCode、Eclipse、Maven、Chrome Etc. sont des outils pour soutenir l'intégration des plug - ins . Plug - in signifie extension ,Gradle Il suffit de définir les spécifications du plug - in , Les grands fabricants ou développeurs individuels peuvent suivre cette spécification et développer de nombreux plug - ins utiles ,Pour enrichirGradleÉcologie.
  • Aujourd'hui, plusieurs plug - ins très appréciés sont utilisés :SpringBootConstruire un plug - in,Docker Module d'intégration des conteneurs ,junit Module d'essai de l'unit é, etc.

Le cycle de vie de l'ingénierie

Cycle de vie:

  • Gradle Au cœur de ce programme se trouve un langage de programmation basé sur la dépendance , Il y a une certaine dépendance entre la tâche et la tâche , Et chaque tâche ne sera exécutée qu'une seule fois .Au moment de la construction,Gradle Ces tâches sont concaténées pour former un graphique acyclique dirigé .C'est...Gradle Quand la série A - t - elle eu lieu? ? Cela exige une compréhension approfondie Gradle Ce qui a été fait à chaque étape , Cette série d'actions du début à la fin s'appelle le cycle de vie .
  • gradleConstruit avec3Différentes étapes:
    ①Initialisation: gradleSoutien à la construction d'un seul projet et de plusieurs projets,À ce stade,gradleVa analysersetting.gradleDocumentation, Déterminer quels projets doivent participer à la construction , Et créer un ProjectExemple.
    ②Configuration: Une fois la phase d'initialisation terminée , Va entrer dans la phase de configuration , La phase de configuration résout tous projectDansbuild.gradle File get all task, Exécuter la dépendance après la formation d'un graphique acyclique dirigé ,Et toutprojectDansbuild scriptPartie ettask Le segment de configuration de ( Notez que ce n'est pas spécifique à l'exécution taskCode).
    ③Mise en œuvretask: Une fois le diagramme de dépendance de la tâche terminé , Gradle Tout est prêt. , Et passer à la phase d'exécution . Selon le graphique acyclique dirigé task Ordre des listes , Exécuter toutes les tâches assignées task.

Résumé

Completbuild.gradle:

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: "war"
//Déclaration
apply plugin: "com.jfrog.bintray"
apply plugin: 'org.akhikhl.gretty' //gradle + jetty Serveurtomcat

/**
 * buildscript {} C'est un outil de constructionGradle Ressources nécessaires , Ce n'est pas pour notre application ,Peut déclarermaven Dépendances de la bibliothèque et du plug - in 
 * Par exemple:: Ce bloc contient gradle-pluginDépendance, Parce que ce plugin contient GradleConstruireAPP Commandes supplémentaires requises par le module . 
 */
buildscript {
    /**
     * repositories {} Configuration de la zoneGradle Adresse de l'entrepôt utilisée pour télécharger les dépendances .
     * Gradle Les entrepôts distants pris en charge sont: JCenter、Maven Central Et Ivy,4.1 Prise en charge intégrée du démarrage de la version google(). 
     *  Vous pouvez également utiliser l'entrepôt local ou configurer notre propre adresse d'entrepôt distant .
     * Voici un exemple de codeGradleUtiliserJCenter Entrepôt de code en tant que bibliothèque de recherche dépendante .
     */
    repositories {
        maven {url "https://maven.aliyun.com/repository/public"}
        jcenter()
    }

    /**
     * dependencies {}  La zone est configurée GradleCompilerAPP Dépendances nécessaires au projet .
     *  Le code suivant montre les dépendances du chemin 3.1.0Versiongradle-plugin
     */
    
	dependencies {
		classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.0"
		classpath 'org.akhikhl.gretty:gretty:+'
	}
}

//Uniquement autorisébuildscript Et pluginManagementDevant ça
plugins {
    //Plug - in Core,gradleOffre
    id 'java'
    id 'eclipse'
    id 'war'
    // Plugins non - Core (Module communautaire),Doit passerid+version Pour limiter 
    id 'com.bmuschko.docker-remote-api' version '6.7.0'
    id 'com.jfrog.bintray' version '1.8.5'
}

//gav Coordonnées
group 'com.it235'
version '1.0.0'

sourceCompatibility = 1.8
targetCompatibility = 1.8

/**
 * allprojects {}  La zone peut configurer l'entrepôt de code et les dépendances pour tous les modules du projet ,Par exemple:, Plug - in ou bibliothèque tripartite .
 *  S'il s'agit d'un seul projet, il n'est pas nécessaire d'utiliser allprojectsFermeture,,Va directementrepositories Écrit sous le noeud racine 
 */
allprojects {
   repositories {
       maven { url 'https://maven.aliyun.com/repository/jcenter' }
	   maven { url 'https://maven.aliyun.com/repository/google' }
	   maven { url 'https://maven.aliyun.com/repository/central' }
	   maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
	   google()
	   jcenter()
   }
}

/**
 * subprojects {}  La zone peut configurer l'entrepôt de code et les dépendances utilisées par tous les sous - modules du projet ,Par exemple:, Plug - in ou bibliothèque tripartite .
 * AvecallprojectsCorrespondance,Moins de scénarios utilisés
 */
subprojects {
   repositories {
       jcenter()
   }
}

test{
	useJUnitPlatform()
}

task cleanx() {
	println "Hello Gradle"
	//GroovySyntaxe,Gradle C'est vraiment puissant. ,Trop flexible, C'est très coûteux. , C'est pourquoi d'autres disent que MavenBon endroit.,Maven XML Trop faible extensibilité 
}

GradleTable des matières etIdeaConfiguration:

  • Use Gradle fromUtilisez cette liste pour configurer votre projetGradleVersion(ConfigurationGradleTable des matières).Vous pouvez choisir l'une des options suivantes:
    ’gradle-wrapper.properties’ file:C'est l'utilisationGradleOptions par défaut recommandées pour l'emballage.Dans ce cas,,Vous pouvezGradleMise à jour de la version déléguée àGradleEt télécharger automatiquement cette version deGradle. Cette option vous permet également d'utiliserGradleVersion à construire. GradleVersion enregistrée dans le projetgradleDans le cataloguegradle-wrapper.propertiesDans le document,Peut vous aider à éliminer toutGradleProblème de version.
    ’wrapper’ task in Gradle build script:.Sélectionnez cette option pour configurer en fonction de la configuration de la tâche wrapperGradleEmballage. Si vous voulez contrôler ce qui est utilisé dans votre projetGradleVersion,Ça pourrait être pratique.Si vous utilisez par défautGradleOptions d'emballage,Et passer àGradleConfiguration de la tâche wrapper,Les modifications que vous avez apportées à la tâche seront automatiquement mises à jour lors de l'importation du projet.
    Specified location:Si vous ne souhaitez pas utiliserGradleEmballage,Au lieu de cela, vous souhaitez télécharger manuellement et utiliser unGradleVersion,Veuillez sélectionner cette option. Spécifiez votreGradleEmplacement de l'installation.
  • ConfigurationGradleRépertoire de la maison de l'utilisateur:GradleUtilisation par défautC:\Users\Administrator.gradleEn tant queGradle Le répertoire Warehouse est utilisé pour stocker les propriétés de configuration globale et les scripts d'initialisation ainsi que les fichiers cache et log .
    ① En général, il n'est pas configuré dans CDisque,Il est donc possible deIdeaPassage moyenGradle User Home Spécifiez en outre la configuration sur un disque différent . Vous pouvez créer un nouveau répertoire ou le spécifier comme MavenRépertoire local pour.
  • Configurer correctementIDEADe sorte queTerminal Exécution en gradlew(gradle wrapper) Commandes et opérations de démarrage graphiques IDEAUtiliserGradle La version est la même .
    ①GRADLE_USER_HOME Se réfère aux variables d'environnement que vous devez configurer . Cette variable d'environnement détermine l'exécution project/gradle/gradle-rapper.jarTéléchargement project/gradle/gradle-wrapper.propertiesVersion spécifiée dansgradleEmplacement de stockage. Entré sur la ligne de commande avec gradlew Les commandes qui commencent par GRADLE_USER_HOME Spécifiez où se trouve la variable d'environnement pour stocker le téléchargement gradle.
    ②Gradle user homeÇa veut direIDEAÀ propos degradleConfiguration de, Cette configuration se réfère à IDEAUtilisation,Quand vous êtesIDEAClic moyengradle Lorsque le bouton graphique associé ,Par exemple,gradle Un bouton pour construire une tâche ou Enable-AutoImport Utilisé lorsque le bouton Gradle user home Téléchargement du Répertoire spécifié project/gradle/gradle-wrapper.propertiesDésignationgradleVersion.
  • Liens:IDEAComment configurer correctementGradle? GRADLE_USER_HOME Et Gradle user homeLa différence entre
原网站

版权声明
本文为[Georgelin98]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207061550262054.html