Schreiben Sie in Groovy-basiertem oder Kotolin-basiertem DSL
Durch die Verwendung von Plug-in ist es möglich, eine Neuerfindung der Räder zu verhindern oder dem allgemeinen Ablauf zu folgen.
Natürlich müssen Sie Ihre eigenen erstellen, um sie an Ihre eigene Umgebung anzupassen.
Build-Aufgaben verwalten
Verwalten von Abhängigkeiten
Werden Sie ein Ameisenwickler
** Aufgrund des Gradle-Wrappers ist keine separate Installation erforderlich **
Wenn das Update wie unten gezeigt ausgeführt wird, wird die erforderliche Version heruntergeladen und bei der nächsten Ausführung des Befehls zwischengespeichert.
# Version 6.1.1 ist 2020/02/Spätestens ab 07
./gradlew wrapper --gradle-version=6.1.1 --distribution-type=bin
Groovy und Kotlin können für DSL ausgewählt werden.
Zu Lernzwecken scheint es für Groovy einfacher zu sein, auf ältere Dokumente zu verweisen.
Wenn Sie nicht gut Englisch können, gibt es kein Problem, da beide offiziell beprobt werden.
Konsultieren Sie die Teamfähigkeiten im tatsächlichen Betrieb.
Zum Beispiel für die Anwendungsentwicklung mit JUnit5: Build Init Plugin
gradle init --type java-application --test-framework junit-jupiter
Wenn Sie ohne Auswahl des Plug-Ins initiieren, sollten Sie es zu build.gradle hinzufügen?
Auch wenn Sie einfach "gradle init" verwenden, können Sie es über eine interaktive Oberfläche auswählen, damit Sie sicher sein können.
```shell:Interaktive Schnittstelle
$ 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:Projektanfangsstruktur
.
├── 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
```
Standardmäßig ist das öffentliche Repository von Maven als Repository festgelegt.
Bei Verwendung des ursprünglichen Maven2 scheint es mit Pom.xml
zu funktionieren, es wurde jedoch nicht bestätigt. Werkzeuge werden auch im Handbuch vorgestellt.
Definieren Sie Produkt- bzw. Testabhängigkeiten.
dependencies {
testImplementation group: 'junit', name: 'junit', version: '4.12'
}
Referenz Informationen zu Gradles Kompilierung, API, Implementierung
Durchgeführt von der Prüfaufgabe.
Verwenden Sie ein Formatierungs-Plug-In, das das Google Java-Format anwendet.
plugins {
id 'com.github.sherter.google-java-format' version '0.8'
}
Durchgeführt von der Prüfaufgabe.
Checkstyle Plug-In eingeführt.
Überprüfen Sie die nicht hauptsächlich verwendeten Variablen und die Komplexität des Programms.
Überprüfen Sie kurz gesagt, ob die Codierungskonventionen eingehalten werden.
Die Version finden Sie unter Referenz.
Führen Sie den Google-Java-Stil unter Bezugnahme auf [Referenz] ein (https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml).
plugins {
id 'checkstyle'
}
checkstyle {
toolVersion = '8.29'
configFile = rootProject.file(new File(tollSettingsDirectory.toString(), "checkstyle/checkstyle.xml").toString())
}
Einführung des SpotBugs-Plugins.
Suchen Sie nach fehleranfälligen Strukturen.
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())
}
Mit der Aufgabe jacocoTestReport ausführen.
Erstellen Sie einen Bericht mit jacoco
Einführung des Jacoco-Plug-Ins.
Stellen Sie dies anhand des Gradle-Benutzerhandbuchs ein.
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)
28.02.2020 Nachtrag:
Ich werde es hinzufügen, weil es eine Geschichte gab, die in der Version schwierig zu verwenden ist, da die Abhängigkeit beim Erstellen der Jar-Datei nicht berücksichtigt wird. Es ist mühsam, die Bibliothek manuell zu platzieren, obwohl sie von maven2 verwaltet wird. Lesen Sie daher die Referenzinformationen und installieren Sie das Gradle Shadow Plugin. (Im Fall von WAR sieht das offizielle WAR-Plug-In gut aus. Ich kenne EAR nicht.) Ist es in diesem Fall nicht in der Lizenz enthalten (Umverteilung)? Das Lassen Sie es uns richtig überprüfen.
build.gradle
plugins {
id 'com.github.johnrengelman.shadow' version '5.2.0'
}
Fügen Sie eine Klasse hinzu, die den Einstiegspunkt main ()
zu Manifest implementiert.
Beispiel einer Klasse mit einem Einstiegspunkt
public class Main {
public static void main(String[] args){
//Ich mache etwas.
new HelloWorld().execute();
}
}
build.gradle
jar {
manifest {
attributes "Main-Class" : "Main" //Vollständiger Paketname.Name der Klasse
}
}
Erstellen Sie mit der Aufgabe shadowJar. Es scheint standardmäßig die Einstellungen der Jar-Aufgabe zu erben.
$ java -jar ./build/libs/sample_tdd-1.0-SNAPSHOT-all.jar
Hello, World!
Referenz:
Recommended Posts