Ce que je suis resté coincé ou que je n'ai pas trouvé lorsque j'ai recherché build.gradle
--Gradle6.4 (publié le 6/05/2020)
Pour le moment, il peut être bon de jeter un œil à la documentation de Gradle.
Nom du lien vers la documentation
Quelque chose comme . / Gradlew
ou. / Gradlew.bat
. Peut être initialisé et mis à jour en exécutant la tâche wrapper
Avec cela, ce n'est pas grave si la version de gradle installée dans l'environnement du développeur est différente!
Documentation officielle: The Gradle Wrapper
S'il n'est pas spécifié, le résultat de la construction peut changer entre Linux et Windows.
Par exemple, lorsque vous spécifiez UTF-8, cela ressemble à ceci
build.gradle
//compiler l'encodage des tâches Java
compileJava.options.encoding = 'UTF-8'
//encodage de tâche Java compileTest
compileTestJava.options.encoding = 'UTF-8'
//encodage de tâches javadoc
javadoc.options.encoding = 'UTF-8'
** N'utilisez pas compile
ou testCompile
car ils sont obsolètes **
Il y a diverses choses telles que ʻimplementation et
testImplementation`, mais comme c'est gênant, le document officiel
The Java Plugin
Qu'est-ce que «api»?
Il est écrit dans The Java Library Plugin
Une brève explication
compileOnly
est une dépendance requise au moment de la compilation. Non inclus dans FatJar etc. (portée provided
dans Maven)
runtimeOnly
est une dépendance requise lors de l'exécution. Il peut être entré dans FatJar etc., mais il ne peut pas être référencé à partir du code source (je pense que c'est le cas, mais je ne le sais pas car je ne l'ai jamais utilisé)
ʻImplementation est une dépendance requise à la fois à la compilation et à l'exécution. Il peut être référencé depuis FatJar et depuis le code source, mais il ne peut pas être référencé à partir de projets qui l'ont comme dépendance (reconnu comme «fourni» dans Maven). Utilisez le plugin de bibliothèque Java ʻapi
pour le rendre visible
De plus, ceux avec «test» au début (par exemple, «testImplementation») ne sont valides que pendant les tests.
La documentation officielle est ici: Déclarer des versions et des plages
build.gradle
testImplementation 'org.junit.jupiter:junit-jupiter:5.6.+'
Si vous le faites, la version 5.6 ci-dessous utilisera la dernière version à ce moment-là. Le résultat de la construction peut changer en fonction de l'environnement créé en raison de cet effet, donc si vous voulez l'empêcher, [Corriger les dépendances](#Fix Dépendances))
La documentation officielle est ici: Verrouillage des versions de dépendance
Ajouter aux plugins
build.gradle
id 'net.ltgt.errorprone' version '1.1.1'
Ajouter à la dépendance
build.gradle
dependencies {
// ErrorProne
errorprone 'com.google.errorprone:error_prone_core:2.+'
}
Pour Java8, insérez le compilateur Java9
build.gradle
dependencies {
errorproneJavac 'com.google.errorprone:javac:9+181-r4173-1'
}
Si vous voulez pouvoir fonctionner dans un environnement Java 8 ou Java 9 ou supérieur, cela peut être bon
build.gradle
if (!JavaVersion.current().isJava9Compatible()) {
dependencies {
errorproneJavac 'com.google.errorprone:javac:9+181-r4173-1'
}
}
Il semble que javac sera remplacé, il sera donc appliqué à toutes les tâches de compilation
Ajouter aux plugins
build.gradle
plugins {
id 'checkstyle'
}
Ajustez config / checkstyle / checkstyle.xml. Par exemple
checkstyle.xml
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">
<module name="FileTabCharacter"/>
<module name="TreeWalker">
<module name="Indentation">
<property name="lineWrappingIndentation" value="8"/>
</module>
<!-- Imports -->
<module name="UnusedImports"/>
<module name="RedundantImport"/>
<module name="ImportOrder">
<property name="separated" value="true"/>
<property name="sortStaticImportsAlphabetically" value="true"/>
</module>
<!-- Brackets -->
<module name="LeftCurly"/>
<module name="RightCurly"/>
<module name="NeedBraces"/>
</module>
</module>
La documentation officielle semble bonne
Si vous exécutez la tâche de construction, elle sera exécutée sans autorisation
Ajouter à la dépendance
build.gradle
testImplementation 'org.junit.jupiter:junit-jupiter:5.6.+'
Ce sera bien de le définir comme ça
build.gradle
tasks.test {
testLogging.showStandardStreams = true // System.Afficher ou se tromper dans le journal
useJUnitPlatform()
testLogging {
events('passed', 'skipped', 'failed')
}
}
Ajouter en tant que plug-in
build.gradle
plugins {
id 'com.github.johnrengelman.shadow' version '5.2.0'
}
Exécutez la tâche shadowjar
et elle sera complétée sous build / libs
Vous pouvez déplacer, réduire et renommer le pot, mais c'est un problème, donc la documentation officielle https://imperceptiblethoughts.com/shadow/introduction/
build.gradle
javadoc {
if(JavaVersion.current().isJava9Compatible()) {
options.addBooleanOption('html5', true)
}
}
Cela donne une bonne apparence à la tâche javadoc (nécessite Java 9 ou supérieur)
Recommended Posts