Traduction japonaise de Chapter 47. Java Quickstart sur la page officielle de gradle.
Chapter 47. Java Quickstart
Comme nous l'avons vu, Gradle est un outil de construction générique. Presque tout ce que l'utilisateur souhaite implémenter peut être construit avec un script de construction. Cependant, pour exécuter la génération, vous devez ajouter du code au script de génération.
La plupart des projets Java sont fondamentalement similaires. Compilez les fichiers source Java, exécutez des tests unitaires, Vous devez créer un fichier JAR contenant les classes. Si vous n'avez plus besoin de coder le processus ci-dessus dans tous les projets Ce serait bien. Heureusement, les utilisateurs de Gradle n'ont pas à coder le processus ci-dessus. Gradle résout ce problème en utilisant un plug-in. Les plugins s'étendent pour vous permettre de configurer votre projet d'une manière ou d'une autre, Ajoutez des tâches prédéfinies utiles. Gradle est livré avec un certain nombre de plug-ins, donc Vous pouvez facilement le créer vous-même et le partager avec d'autres. Un de ces plug-ins est le plug-in Java. Ce plug-in compile le code source Java du projet, exécute des tests unitaires et Ajoutez des tâches pour générer un fichier JAR.
Les plug-ins Java sont basés sur des conventions. Le plug-in est l'emplacement du fichier source Java, etc. Définit les valeurs par défaut pour divers aspects du projet. Tant que vous suivez les conventions de votre projet, vous n'avez pas à apporter de modifications majeures à votre script de construction Vous pouvez exécuter la compilation. Si vous ne souhaitez pas suivre les conditions, ou si vous ne pouvez pas suivre les conditions Vous pouvez personnaliser le projet. En fait, le support de projet Java est implémenté sous forme de plug-in, donc Vous pouvez créer des projets Java sans utiliser de plugins.
Pour les plugins Java, la gestion des dépendances et les builds multi-projets Nous couvrirons de nombreux exemples plus en détail dans les chapitres suivants. Dans ce chapitre, pour créer un projet Java Je voudrais donner une première idée de la façon d'utiliser le plug-in Java.
Regardons un exemple simple. Pour utiliser le plug-in Java, ajoutez la ligne suivante à votre fichier de construction:
build.gradle
apply plugin: 'java'
Remarque: le code de cet exemple provient de la distribution «tout» de Gradle. Il peut être trouvé dans samples / java / quickstart.
C'est tout ce dont vous avez besoin pour définir un projet Java. En décrivant ce qui précède, le plug-in Java sera appliqué au projet, Certaines tâches sont ajoutées au projet.
** Tâches réalisables **
Vous pouvez utiliser des tâches de gradation pour répertorier les tâches de votre projet. Cela vous montrera les tâches que le plug-in Java a ajoutées à votre projet.
Gradle place le code source de production sous src / main / java, Essayez de trouver le code source du test sous src / test / java. De plus, tous les fichiers sous src / main / resources sont inclus en tant que ressources dans le fichier JAR, Les fichiers sous src / test / resources sont inclus dans le chemin de classe utilisé pour exécuter le test. Tous les fichiers de sortie sont créés dans le répertoire de construction Le fichier JAR est stocké dans le répertoire build / libs.
Les plugins Java ajoutent un grand nombre de tâches à votre projet. Cependant, seule une poignée de tâches est requise pour créer un projet. La tâche la plus couramment utilisée est la tâche de construction, qui construit complètement le projet. Lorsque vous exécutez gradle build, Gradle compile et teste votre code Créez un fichier JAR contenant les classes d'exécution et les ressources.
** Exemple 47.2. Construction d'un projet Java **
Sortie lors de l'exécution de la compilation gradle
> gradle build
:compileJava
:processResources
:classes
:jar
:assemble
:compileTestJava
:processTestResources
:testClasses
:test
:check
:build
BUILD SUCCESSFUL in 0s
6 actionable tasks: 6 executed
Voici quelques tâches utiles.
clean
Supprimez le répertoire de construction et supprimez tous les fichiers créés.
assemble
Compile le code pour générer un fichier jar, mais n'exécute pas de tests unitaires. D'autres plugins ajoutent des éléments à cette tâche. Par exemple, lors de l'utilisation du plug-in War Cette tâche génère également un fichier WAR pour votre projet.
check
Compilez et testez votre code. D'autres plugins ajoutent plus de contrôles à cette tâche. Par exemple, si vous utilisez le plugin checkstyle Cette tâche exécute également Checkstyle sur le code source.
Les projets Java ont généralement des dépendances sur des fichiers JAR externes. Pour référencer ces fichiers JAR dans votre projet Vous devez indiquer à Gradle où obtenir le fichier JAR. Dans Gradle, les artefacts tels que les fichiers JAR sont stockés dans le référentiel. Étant donné que le référentiel obtient les dépendances du projet, Ou pour publier les livrables du projet Il peut être utilisé pour ou pour les deux. Cet exemple utilise un référentiel Maven public.
** Exemple 47.3. Création d'un référentiel Maven **
build.gradle
repositories {
mavenCentral()
}
Ajoutons quelques dépendances. Ici, la classe de production a une dépendance à la compilation sur la collection commons, Déclarez que la classe de test dépend de junit au moment de la compilation.
** Exemple 47.4. Enregistrement des dépendances **
build.gradle
dependencies {
compile group: 'commons-collections', name: 'commons-collections', version: '3.2.2'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
Voir Chapitre 8 «Bases de la gestion des dépendances» pour plus d'informations.
Les plugins Java ajoutent des propriétés à votre projet. Ces propriétés sont généralement définies sur les valeurs par défaut. Si la valeur par défaut de la propriété ne correspond pas, vous pouvez facilement modifier la valeur. Regardons un exemple. Voici le numéro de version du projet Java et Spécifie la version de Java qui décrit la source. Il ajoute également certains attributs au manifeste JAR.
** Exemple 47.5. Personnalisation de MANIFEST.MF **
build.gradle
sourceCompatibility = 1.7
version = '1.0'
jar {
manifest {
attributes 'Implementation-Title': 'Gradle Quickstart',
'Implementation-Version': version
}
}
Vous pouvez répertorier les propriétés de votre projet en exécutant les propriétés gradle. Cela affichera les propriétés et les valeurs par défaut ajoutées par le plug-in Java.
Les tâches ajoutées par le plug-in Java sont exactement les mêmes que celles déclarées dans le fichier de construction, C'est une tâche normale. Cela signifie que vous pouvez personnaliser ces tâches à l'aide du mécanisme présenté dans le chapitre précédent. Par exemple, définir les propriétés des tâches, ajouter un comportement, Vous pouvez modifier les dépendances des tâches ou remplacer complètement les tâches. Dans l'exemple, pour ajouter des propriétés système lors de l'exécution du test Configurez une tâche de test de type Test.
** Exemple 47.6. Enregistrement des propriétés du système de test **
build.gradle
test {
systemProperties 'property': 'value'
}
Normalement, le fichier JAR doit être publié quelque part. Pour ce faire, vous devez indiquer à Gradle où publier le fichier JAR. Gradle publie des artefacts tels que des fichiers JAR dans le référentiel. L'exemple l'expose à un répertoire local. Vous pouvez également publier vers un emplacement distant ou plusieurs emplacements.
** Exemple 47.7. Publication d'un fichier JAR **
build.gradle
uploadArchives {
repositories {
flatDir {
dirs 'repos'
}
}
}
Pour publier le fichier JAR, exécutez gradle uploadArchives.
Pour créer un fichier descripteur spécifique à Eclipse tel que .project Vous devez ajouter un autre plug-in à votre fichier de construction.
** Exemple 47.8. Plugin Eclipse **
build.gradle
apply plugin: 'eclipse'
Exécutez la commande gradle eclipse pour générer le fichier de projet Eclipse. Pour plus d'informations sur les tâches eclipse, reportez-vous au chapitre 67, «Plugins Eclipse» (https://docs.gradle.org/4.4.1/userguide/eclipse_plugin.html).
Voici un exemple d'un exemple de fichier de construction complet.
** Exemple 47.9. Fichier de construction d'exemple Java complet **
build.gradle
apply plugin: 'java'
apply plugin: 'eclipse'
sourceCompatibility = 1.7
version = '1.0'
jar {
manifest {
attributes 'Implementation-Title': 'Gradle Quickstart',
'Implementation-Version': version
}
}
repositories {
mavenCentral()
}
dependencies {
compile group: 'commons-collections', name: 'commons-collections', version: '3.2.2'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
test {
systemProperties 'property': 'value'
}
uploadArchives {
repositories {
flatDir {
dirs 'repos'
}
}
}
Ensuite, jetons un coup d'œil à une construction multi-projets typique. Illustrez la structure du projet.
** Exemple 47.10. Disposition hiérarchique de construction multi-projets **
Configuration de la construction
multiproject/
api/
services/webservice/
shared/
services/shared/
Remarque: cet exemple de code provient de la distribution `` tout '' de Gradle Il est décrit dans samples / java / multiproject.
Il y a quatre projets ici. Le projet api génère un fichier JAR et Fournit au client un client Java pour les services Web XML. Un projet de service Web est une application Web qui renvoie du XML. Le projet partagé contient du code utilisé à la fois par l'API et le service Web. Les services / projet partagé ont un code qui dépend du projet partagé.
Pour définir une construction multi-projets, vous devez créer un fichier de configuration. Le fichier de configuration se trouve dans le répertoire racine de l'arborescence source Spécifie les projets à inclure dans la construction. Le fichier de paramètres doit toujours être nommé settings.gradle. Cet exemple utilise une disposition hiérarchique simple. Le fichier de configuration correspondant est illustré ci-dessous.
** Exemple 47.11. Fichier build-settings.gradle multi-projets **
settings.gradle
include "shared", "api", "services:webservice", "services:shared"
Pour plus d'informations sur les fichiers de configuration, reportez-vous au chapitre 26, "Constructions multi-projets" (https://docs.gradle.org/4.4.1/userguide/multi_project_builds.html).
Pour la plupart des builds multi-projets Certains paramètres sont communs à tous les projets. Dans l'exemple, nous utilisons une technique appelée injection de configuration. Définissez ce paramètre commun dans le projet racine. Le projet racine est comme un conteneur La méthode du sous-projet itère sur les éléments de ce conteneur (le projet de l'instance) et Injecte les paramètres spécifiés. De cette façon, toutes les archives et certaines Définissez facilement le contenu du manifeste pour les dépendances courantes.
** Exemple 47.12. Paramètres communs de construction multi-projets **
build.gradle
subprojects {
apply plugin: 'java'
apply plugin: 'eclipse-wtp'
repositories {
mavenCentral()
}
dependencies {
testCompile 'junit:junit:4.12'
}
version = '1.0'
jar {
manifest.attributes provider: 'gradle'
}
}
Dans cet exemple, le plug-in Java est appliqué à chaque sous-projet. C'est parce que les tâches et les propriétés de configuration que nous avons vues dans la section précédente Cela signifie qu'il peut être utilisé dans chaque sous-projet. Par conséquent, en exécutant gradle build à partir du répertoire racine du projet Vous pouvez compiler, tester et générer des fichiers JAR pour tous vos projets. De plus, ces plugins ne sont pas au niveau racine Cela ne s'applique qu'à la section du sous-projet, donc La compilation racine n'essaie pas de trouver les fichiers source Java dans le projet racine Rechercher uniquement dans les sous-projets.
Vous pouvez ajouter des dépendances entre les projets dans la même build. Par exemple, utiliser le fichier JAR pour un projet Vous pouvez compiler un autre projet. Le fichier de construction de l'API ajoute une dépendance au projet partagé. En raison de cette dépendance, Gradle est toujours avant de créer un projet d'API. Construisez un projet partagé.
** Exemple 47.13. Dépendances de construction multi-projets entre projets **
api/build.gradle
dependencies {
compile project(':shared')
}
Pour plus d'informations sur la désactivation de cette fonctionnalité Voir Section 26.7.1, «Désactiver les versions de projet dépendantes» (https://docs.gradle.org/4.4.1/userguide/multi_project_builds.html#disable_dependency_projects).
Ajoutez les artefacts qui seront distribués au client.
** Exemple 47.14. Fichier de distribution de construction multi-projets **
api/build.gradle
task dist(type: Zip) {
dependsOn spiJar
from 'src/dist'
into('libs') {
from spiJar.archivePath
from configurations.runtime
}
}
artifacts {
archives dist
}
Ce chapitre vous oblige à créer un projet basé sur Java Nous avons vu comment effectuer certaines des tâches. Ce chapitre n'est pas exhaustif. Il y a beaucoup d'autres choses que vous pouvez faire avec le projet Java de Gradle. Vous pouvez en savoir plus sur les plugins Java au chapitre 48, «Plugins Java» (https://docs.gradle.org/4.4.1/userguide/java_plugin.html). En outre, un exemple de projet Java de la distribution Gradle Situé dans le répertoire samples / java. Sinon, passez au chapitre 8, «Bases de la gestion des dépendances» (https://docs.gradle.org/4.4.1/userguide/artifact_dependencies_tutorial.html).
Recommended Posts