当前位置:网站首页>Résumé des connaissances de gradle
Résumé des connaissances de gradle
2022-07-06 23:32:00 【Georgelin98】
GradleRésumé des connaissances
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:
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::
- Mais lorsque vous importez un projet , Le programme téléchargera un wrapperQuestions connexeszipSac:
- 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:
- Adresse:GradleNotes d'étude
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 ):
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 |
project | En 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 |
tasks | De 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éthodes | Description |
---|---|
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 . |
delete | Supprimer les fichiers et répertoires |
exec | Exé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 |
javaexec | Mise en œuvre Java Catégorie principale |
javaexec | Exé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 |
task | Cré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
边栏推荐
- 不要再说微服务可以解决一切问题了
- 【无人机】多无人协同任务分配程序平台含Matlab代码
- How to choose the server system
- MySQL数据库之JDBC编程
- 本地部署 zeppelin 0.10.1
- Children's pajamas (Australia) as/nzs 1249:2014 handling process
- 基于PaddlePaddle平台(EasyDL)设计的人脸识别课堂考勤系统
- Station B Big utilise mon monde pour faire un réseau neuronal convolutif, Le Cun Forward! Le foie a explosé pendant 6 mois, et un million de fois.
- 新手问个问题,我现在是单机部署的,提交了一个sql job运行正常,如果我重启了服务job就没了又得
- 请问async i/o可以由udf算子实现然后用sql api调用吗?目前好像只看到Datastre
猜你喜欢
PDF批量拆分、合并、书签提取、书签写入小工具
docker启动mysql及-eMYSQL_ROOT_PASSWORD=my-secret-pw问题解决
COSCon'22 社区召集令来啦!Open the World,邀请所有社区一起拥抱开源,打开新世界~
Knowledge * review
js对JSON数组的增删改查
The best sister won the big factory offer of 8 test posts at one go, which made me very proud
Implementation steps of mysql start log in docker
云原生(三十二) | Kubernetes篇之平台存储系统介绍
(flutter2) as import old project error: inheritfromwidgetofexacttype
MySQL中正则表达式(REGEXP)使用详解
随机推荐
Master binary tree in one article
(flutter2) as import old project error: inheritfromwidgetofexacttype
Experiment 4: installing packages from Gui
I've been laid off, and I'll lose money for everything. The days when I once made a monthly salary of 20000 are not coming back
(DART) usage supplement
JDBC programming of MySQL database
基于PaddlePaddle平台(EasyDL)设计的人脸识别课堂考勤系统
How to implement Lua entry of API gateway
js對JSON數組的增删改查
Demonstration of the development case of DAPP system for money deposit and interest bearing financial management
docker启动mysql及-eMYSQL_ROOT_PASSWORD=my-secret-pw问题解决
《数字经济全景白皮书》保险数字化篇 重磅发布
How does crmeb mall system help marketing?
Isomorphism + cross end, knowing applet +kbone+finclip is enough!
Hard core observation 545 50 years ago, Apollo 15 made a feather landing experiment on the moon
Efficient ETL Testing
AcWing 4299. Delete point
Gpt-3 is a peer review online when it has been submitted for its own research
The tutorial of computer reinstallation win10 system is simple and easy to understand. It can be reinstalled directly without U disk
docker中mysql开启日志的实现步骤