Écrivez en DSL à base de Groovy ou de Kotolin
En utilisant Plug-in, vous pouvez empêcher la réinvention des roues ou suivre le flux général.
Bien sûr, vous devez créer le vôtre pour le personnaliser en fonction de votre propre environnement.
Gérer les tâches de construction
Gérer les dépendances
Devenez un wrapper de fourmis
** Aucune installation séparée requise en raison de l'enrubanneuse Gradle **
Lorsque la mise à jour est exécutée comme indiqué ci-dessous, la version requise sera téléchargée et mise en cache la prochaine fois que la commande sera exécutée.
# Version 6.1.1 est 2020/02/Dernier en 07
./gradlew wrapper --gradle-version=6.1.1 --distribution-type=bin
gradle
à. / Gradlew
selon le cas.Groovy et Kotlin peuvent être sélectionnés pour DSL.
À des fins d'apprentissage, Groovy semble être plus facile de se référer à des documents plus anciens.
Si vous n'êtes pas bon en anglais, il n'y aura pas de problème car les deux sont officiellement échantillonnés.
Consultez les compétences de l'équipe en fonctionnement réel.
Par exemple, pour le développement d'applications à l'aide de JUnit5: Build Init Plugin
gradle init --type java-application --test-framework junit-jupiter
Si vous lancez sans sélectionner le plug-in, devez-vous l'ajouter à build.gradle?
Même si vous simplement gradle init
, vous pouvez le sélectionner avec une interface interactive, donc vous pouvez être assuré.
```shell:Interface interactive
$ gradlew init
Select type of project to generate:
1: basic
2: application
3: library
4: Gradle plugin
Enter selection (default: basic) [1..4] 2
Select implementation language:
1: C++
2: Groovy
3: Java
4: Kotlin
5: Swift
Enter selection (default: Java) [1..5] 3
Select build script DSL:
1: Groovy
2: Kotlin
Enter selection (default: Groovy) [1..2] 2
Select test framework:
1: JUnit 4
2: TestNG
3: Spock
4: JUnit Jupiter
Enter selection (default: JUnit 4) [1..4] 4
Project name (default: test): testapp
Source package (default: testapp):
> Task :init
Get more help with your project: https://docs.gradle.org/6.1.1/userguide/tutorial_java_projects.html
BUILD SUCCESSFUL in 4m 44s
2 actionable tasks: 2 executed
```
```shell:Structure initiale du projet
.
├── build.gradle.kts
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle.kts
└── src
├── main
│ ├── java
│ │ └── testapp
│ │ └── App.java
│ └── resources
└── test
├── java
│ └── testapp
│ └── AppTest.java
└── resources
11 directories, 8 files
```
Par défaut, le référentiel public de Maven est défini comme référentiel.
Lorsque vous utilisez le Maven2 original, il semble fonctionner avec Pom.xml
, mais cela n'a pas été confirmé. Des outils sont également présentés dans le manuel.
Définissez respectivement les dépendances de produit et de test.
dependencies {
testImplementation group: 'junit', name: 'junit', version: '4.12'
}
Référence À propos de la compilation, de l'API et de l'implémentation de Gradle
Effectué par la tâche de vérification.
Utilisez un plug-in de formatage qui applique le format Google Java.
plugins {
id 'com.github.sherter.google-java-format' version '0.8'
}
Effectué par la tâche de vérification.
Introduction du plug-in checkstyle.
Vérifiez les variables qui ne sont pas principalement utilisées et la complexité du programme.
En un mot, vérifiez le respect des conventions de codage.
Reportez-vous à Reference pour spécifier la version.
Introduisez le style google-java en vous référant à Reference
plugins {
id 'checkstyle'
}
checkstyle {
toolVersion = '8.29'
configFile = rootProject.file(new File(tollSettingsDirectory.toString(), "checkstyle/checkstyle.xml").toString())
}
Introduction de Plugin SpotBugs.
Vérifiez les structures sujettes aux bogues.
plugins {
id "com.github.spotbugs" version "3.0.0"
}
spotbugs {
toolVersion = "3.1.12"
excludeFilter = rootProject.file(new File(tollSettingsDirectory.toString(), "spotbugs/exclude_filter.xml").toString())
}
Exécuter avec la tâche jacocoTestReport.
Créer un rapport avec jacoco
Introduction du plug-in jacoco.
Réglez en vous référant au manuel d'utilisation Gradle.
plugins {
id 'jacoco'
}
jacoco {
toolVersion = "0.8.5"
reportsDir = file("${buildDir}/JacocoReports")
}
jacocoTestReport {
reports {
html.destination file("${buildDir}/JacocoReports/html")
}
}
jacocoTestReport.shouldRunAfter(test)
build.gradle
plugins {
id 'java'
id 'com.github.sherter.google-java-format' version '0.8'
id 'checkstyle'
id "com.github.spotbugs" version "3.0.0"
id 'jacoco'
}
File tollSettingsDirectory = new File("${rootProject.projectDir}/config/")
group 'org.example'
version '1.0-SNAPSHOT'
//noinspection GroovyUnusedAssignment
sourceCompatibility = 1.11
repositories {
mavenCentral()
}
dependencies {
implementation "org.slf4j:slf4j-api:1.7.30"
testImplementation "org.slf4j:slf4j-api:1.7.30"
runtimeOnly "ch.qos.logback:logback-classic:1.2.3"
testRuntimeOnly "ch.qos.logback:logback-classic:1.2.3"
testImplementation "org.junit.jupiter:junit-jupiter-api:5.6.0"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.6.0"
}
test {
useJUnitPlatform()
}
checkstyle {
toolVersion = '8.29'
configFile = rootProject.file(new File(tollSettingsDirectory.toString(), "checkstyle/checkstyle.xml").toString())
}
spotbugs {
toolVersion = "3.1.12"
excludeFilter = rootProject.file(new File(tollSettingsDirectory.toString(), "spotbugs/exclude_filter.xml").toString())
}
jacoco {
toolVersion = "0.8.5"
reportsDir = file("${buildDir}/JacocoReports")
}
jacocoTestReport {
reports {
html.destination file("${buildDir}/JacocoReports/html")
}
}
jacocoTestReport.shouldRunAfter(test)
Post-scriptum 2020/02/28:
Puisqu'il y avait une histoire qu'il est difficile d'utiliser dans la version car la dépendance n'est pas incluse lors de la construction du fichier Jar, je vais l'ajouter. Il est difficile de placer manuellement la bibliothèque même si elle est gérée par maven2. Alors, référez-vous aux informations de référence et installez Gradle Shadow Plugin. (Dans le cas de WAR, le plug-in officiel WAR semble bon. Je ne connais pas EAR) Dans ce cas, n'est-il pas pris dans la licence (redistribution)? Cette Vérifions-le correctement.
build.gradle
plugins {
id 'com.github.johnrengelman.shadow' version '5.2.0'
}
Ajoutez une classe qui implémente le point d'entrée main ()
à Manifest.
Exemple de classe avec un point d'entrée
public class Main {
public static void main(String[] args){
//Je fais quelque chose.
new HelloWorld().execute();
}
}
build.gradle
jar {
manifest {
attributes "Main-Class" : "Main" //Nom complet du package.nom de la classe
}
}
Construisez avec la tâche shadowJar. Il semble hériter des paramètres de la tâche Jar par défaut.
$ java -jar ./build/libs/sample_tdd-1.0-SNAPSHOT-all.jar
Hello, World!
référence:
Recommended Posts