[JAVA] Qu'est-ce que Gradle?

J'étais intéressé par la version java, donc un mémo à l'époque.

Qu'est-ce que Gradle

Un fichier jar avec un outil de construction java (un format de fichier zip qui combine des fichiers de code d'octet java et des images) Construira à. Contrairement à maven, le fichier de configuration est écrit dans le langage grovy.

Créez également un wrapper gradle pour ne pas avoir à installer gradle à chaque fois. En distribuant ceci, vous pouvez utiliser gradle même dans un environnement où gradle n'est pas installé.

Initialisation Gradle

Créez un projet gradle simple.

gradle init

Cela créera divers fichiers. Plus précisément, le sentiment suivant

├── build.gradle
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle

Résolution des dépendances

gradle gère les packages en dehors de java afin que vous puissiez les utiliser dans vos propres projets.

dependencies {
    implemention("nom du paquet")
}

tâche

La tâche dans gradle est, pour citer le fonctionnaire, le travail détaillé pour faire la construction.

Tâches intégrées

Une partie de cette tâche a été créée lors de la création du projet gradle. Par exemple, testez, construisez, exécutez.

Elles sont,

gradle tasks

Vous pouvez voir la liste sur.

Définition de tâche

Vous pouvez le définir vous-même, définissons donc une tâche simple.

task hello {
    println("hello")
}

Lançons-le.

gradle hello

#Vous devriez voir ce qui suit
#hello
#:hello UP-TO-DATE

Vous pouvez créer une tâche comme celle-ci et regrouper en interne uniquement les paramètres du plug-in et des tâches spécifiques.

Configurer une tâche avec des actions

Les tâches reconnaissent les tâches qu'elles doivent effectuer dans des unités appelées actions, et les exécutent séquentiellement sous forme de tableau.

L'action est doFirst: ajouter au début doLast: Ajouter à la fin

Je vais l'ajouter sous la forme de.

task hello{
    hello.doFirst {
        println "hello1"
        println "hello2"
    }
    hello.doLast {
        println "hello3"
        println "hello4"
    }
}

Quand tu fais ça

gradle hello

Le résultat est

:hello
hello1
hello2
hello3
hello4

BUILD SUCCESSFUL in 0s
1 actionable task: 1 executed

Sera.

Vous pouvez personnaliser l'ordre de traitement en contrôlant l'ordre d'exécution de cette manière.

conseils de gradle

Jusqu'à présent, j'ai abordé à peu près comment utiliser gradle, mais j'aimerais maintenant examiner les fonctions utiles de réglage et d'analyse qui accélèrent chaque tâche.

Parallélisation

grale n'exécute les tâches qu'une par une. mais, Il existe un paramètre pour forcer l'exécution parallèle. Notez que cela exécute des tâches complètement indépendantes en parallèle, donc toutes les dépendances continueront à s'exécuter séquentiellement.

Ajoutez ce qui suit à gradle.properties.

org.gradle.parallel=true

Profilage

gradle a une fonction pour profiler et visualiser le temps passé à exécuter les tâches, si elles ont été exécutées en parallèle, etc. Si vous ajoutez --scan lors de l'exécution d'une tâche, l'URL sera affichée dans la CLI après l'exécution, et vous pourrez la vérifier à partir de là.

Cependant, comme cela nécessite l'enregistrement d'une adresse e-mail avec gradle, il est nécessaire de considérer la partie gestion des informations.

screenshot-scans.gradle.com-2020.03.20-12_00_39.png

Ce profilage est assez pratique et peut vous donner des informations importantes pour rationaliser votre build, telles que des pièces de test lourdes et des suggestions.

référence

https://qiita.com/opengl-8080/items/0a192b62ee87d8ac7578#%E3%82%BF%E3%82%B9%E3%82%AF%E3%81%AE%E5%8F%82%E7%85%A7

https://guides.gradle.org/performance/

finalement

Le fichier de configuration de gradle peut être votre propre langue, mais une fois que vous vous êtes habitué à cette langue, le paramètre est facile à lire et C'est une impression que vous pouvez définir les tâches en détail.

C'est aussi bien d'avoir la vérification et l'amélioration d'hier, comme le profilage au moment de la construction.

Ayons une bonne vie

Recommended Posts

Qu'est-ce que Gradle?
Qu'est-ce que Cubby
Qu'est-ce qui est nul? ]
Qu'est-ce que 'java
Qu'est-ce que Keycloak
Qu'est-ce que maven?
Qu'est-ce que Jackson?
Qu'est-ce que soi
Qu'est-ce que Jenkins
Qu'est-ce que ArgumentMatcher?
Qu'est-ce que IM-Juggling?
Qu'est-ce que les paramètres
Qu'est-ce que SLF4J?
Qu'est-ce que la façade? ??
Qu'est-ce que Java <>?
Qu'est-ce que POJO
Qu'est-ce que 'java
Qu'est-ce que centOS
Qu'est-ce que RubyGem?
Qu'est-ce que before_action?
Qu'est-ce que Docker
Qu'est-ce que Byte?
Qu'est-ce que Tomcat
Qu'est-ce que l'assemblage Maven?
Qu'est-ce que `docker-compose up`?
Qu'est-ce qu'un constructeur
Qu'est-ce que vue cli
Qu'est-ce qu'une interface
Qu'est-ce que le moi de Ruby?
Qu'est-ce que le codage en dur?
Qu'est-ce qu'un flux
Qu'est-ce que l'attr_accessor de Ruby?
Qu'est-ce que l'encapsulation Java?
Qu'est-ce qu'une permission refusée?
Qu'est-ce qu'un initialiseur?
Qu'est-ce que Spring Tools 4
Qu'est-ce qu'un opérateur?
Qu'est-ce que l'orientation objet?
Qu'est-ce que le @VisibleForTesting de Guava?
Qu'est-ce qu'un modèle MVC?
Qu'est-ce qu'une annotation?
Qu'est-ce que la technologie Java?
Qu'est-ce que Java API-java
Qu'est-ce que @ (variable d'instance)?
Qu'est-ce que l'artefact de Gradle?
Qu'est-ce que l'audit JPA?
[Java] Qu'est-ce que flatMap?
Qu'est-ce qu'un servlet?
Qu'est-ce que le développement Web?
[Java] Qu'est-ce que ArrayList?
Qu'est-ce que l'orientation objet après tout?
Qu'est-ce que HttpSession session = request.getSession ();
Qu'est-ce que l'assertion Java? Résumé.
[Mémorandum] Qu'est-ce qu'une erreur?