[JAVA] Beginnen Sie mit Gradle

Gradle Übersicht

Zweck

Umgebungseinstellung

Projektinitialisierung

Beispiel für eine interaktive Schnittstelle
```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
```
Beispiel für die anfängliche Projektstruktur
```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
```

Abhängigkeitsmanagement

Formatierer

Betreff: Statische Code-Analyseaufgabe

Hauptthema: Unit Test

Testabdeckung

Probe: Voll

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)

Informationen zum Erstellen von Jar-Dateien

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:

Referenz

Recommended Posts

Beginnen Sie mit Gradle
Beginnen Sie mit Spring Boot
Beginnen wir mit der parallelen Programmierung
Wie fange ich mit schlank an?
Ich habe versucht, mit Web Assembly zu beginnen
Beginnen wir mit Java-Create a Development Environment ②
Verwenden Sie ProGuard mit Gradle
Integrationstest mit Gradle
Erste Schritte mit DBUnit
Installieren Sie Gradle auf ubuntu16.04
Erste Schritte mit Ruby
Erste Schritte mit Eclipse Micro Profile
Vielleicht funktioniert es! Beginnen wir mit Docker!
Erste Schritte mit Swift
Rails-Anfänger haben versucht, mit RSpec zu beginnen
Verwenden Sie jlink mit gradle
Ich habe versucht, mit Gradle auf Heroku zu beginnen
Ich habe versucht, mit Spring Data JPA zu beginnen
Einführung in "Einführung in die praktische Rostprogrammierung" (Tag 3)
Beginnen Sie mit serverlosem Java mit dem leichtgewichtigen Framework Micronaut!
Erstellen Sie mit Gradle ein Java-Multiprojekt
Erste Schritte mit der Verarbeitung von Doma-Annotationen
Erste Schritte mit Java Collection
Gradle + Kotlin-Glas mit DSL generieren
Erste Schritte mit JSP & Servlet
Erste Schritte mit Java Basics
Erste Schritte mit Spring Boot
Verwenden Sie log4j2 mit YAML + Gradle
Hallo Welt mit SpringBoot / Gradle
Erste Schritte mit Ruby-Modulen
Jetzt ist es an der Zeit, mit der Stream-API zu beginnen
Erste Schritte mit JDBC mit PostgresSQL unter MacOS
Ich habe versucht, mit Swagger mit Spring Boot zu beginnen
Erstellen eines Java-Projekts mit Gradle
Einfache Codeüberprüfung für den Einstieg in Jenkins / SonarQube: Statische Analyse
Gradle
Erste Schritte mit Java_Kapitel 5_Praktische Übungen 5_4
Ich habe versucht, JOOQ mit Gradle zu verwenden
Ausgabe Testabdeckung mit Klee + Gradle
Erhalten Sie Validierungsergebnisse mit Spring Boot
[Google Cloud] Erste Schritte mit Docker
Mit JPA Spalten verwandter Tabellen abrufen
Erste Schritte mit Docker mit VS-Code
Memo mit Struts2 + Ajax zu bekommen
Entwickeln Sie die Verarbeitung mit IntelliJ + Kotlin + Gradle
Die Nachrichtenkooperation begann mit Spring Boot
Einführung in "Einführung in die praktische Rostprogrammierung" (Tag 4) Aufrufen von Rust von Ruby
(Memo) Holen Sie sich mit Hilfe von Gradle eine Reihe von abhängigen Bibliotheksgläsern
[Java] Listen- / Kartenelemente mit Iterator abrufen
[Java] Erstellen Sie mit Gradle ein ausführbares Modul
Erste Schritte mit Ruby für Java-Ingenieure
[Ich bekomme] Bis zur Bereitstellung mit SAM CLI
Nehmen Sie Kontakt mit Eclipse MicroProfile Health auf