[Gradle] Erstellen Sie ein Java-Projekt mit einer Konfiguration, die von der Konvention abweicht

Überblick

Gradle enthält die Idee von Konventionen, daher ist dies nicht die Standardordnerstruktur Projekt kann nicht erstellt werden. In Gradle jedoch durch Ändern der Konfiguration und der Eigenschaften Es ist möglich, diese Regeln flexibel zu ändern.

Anfahrt vom Grundstück

Ändern Sie beispielsweise die Konvention zum Zuweisen von Java-Quellen und -Ressourcen im Hauptquellensatz.

Erstellen Sie dieses Mal ein Projekt mit der folgenden Konfiguration.

Projektstruktur


<project-root>
└ src
    ├ Mapping.xml
    ├ app.properties
    └ examples
        └ Dummy.java

In Gradle befindet sich die Java-Quelle im Verzeichnis src / main / java. Es wird erwartet, dass sich die Ressourcen im Verzeichnis src / main / resources befinden.

Im obigen Projekt sind jedoch sowohl Java-Quellen als auch -Ressourcen im Verzeichnis src gruppiert. Legen Sie daher den Java-Quell- und Ressourcenplatzierungspfad im Build-Skript fest Erstellen Sie ein Projekt, das nicht den Standardkonventionen entspricht.

apply plugin: 'java'

sourceSets {
    main {
        java {
            // sourceSets.main.java.Einstellungen zur Eigenschaft srcDirs hinzugefügt
            // =Legen Sie den Speicherort der Java-Quelle fest
            srcDir 'src'
        }
        resources {
            // sourceSets.test.java.Einstellungen zur Eigenschaft srcDirs hinzugefügt
            // =Legen Sie das Ziel für die Ressourcenplatzierung fest
            srcDir 'src'
        }
    }
}

processResources {
    // .Schließen Sie Verzeichnisse, die nur Java-Dateien enthalten, vom Kopieren aus
    includeEmptyDirs = false
}

Ansatz aus der Konfiguration

Was ist Konfiguration?

Die Absicht ist eine Einheit zum Gruppieren und Klassifizieren von Abhängigkeiten. In der Realität wird nur der Pfad festgelegt, auf den die Task verweist (= Taskverarbeitungsziel).

Die Java-Plug-In-Konfigurationen umfassen:

Verwendung der Konfiguration

Wenn Sie beispielsweise eine Bibliotheksabhängigkeit festlegen möchten, Angenommen, Sie möchten die Ergänzungen der JUnit-Bibliothek nur auf testbezogene Aufgaben anwenden. In diesem Fall müssen die Bibliotheksabhängigkeiten nur für die Aufgabe compileTestJava festgelegt werden Nehmen Sie Einstellungen für die testCompile-Konfiguration vor.

dependencies {
    testCompile 'junit:junit:4.11'
}

Annäherung aus dem Quellensatz

Quellensatz hinzufügen

Sie können einen Quellensatz hinzufügen, indem Sie Folgendes in das Erstellungsskript schreiben.

sourceSets {
    exampleSet {
        java.srcDir file('src/example/java')
    }

Automatisch hinzugefügte Konfiguration

Wenn Sie einen Quellensatz hinzufügen, werden die folgenden Konfigurationen automatisch hinzugefügt.

Um die obige Konfiguration festzulegen, schreiben Sie Folgendes in das Build-Skript.

sourceSets {
    exampleSet {
        compileClasspath = 'src/ex/java'
        runtimeClasspath = 'build/ex/classes'
    }
}

Aufgaben werden automatisch hinzugefügt

Wenn Sie einen Quellensatz hinzufügen, werden die folgenden Aufgaben automatisch hinzugefügt.

Aufgabe hinzufügen

Im Folgenden wird ein Quellensatz (IntegrationTest) zum Durchführen von Integrationstests hinzugefügt Versuchen Sie, eine Testtyp-Aufgabe hinzuzufügen.

sourceSets {
    integrationTest {
        //Testcode für Integrationstest (Java-Quelle)Legen Sie das Platzierungsziel von fest
        java.srcDir file('src/intTest/java')
        //Beziehen Sie sich auf die Ausgabeklasse des Hauptquellensatzes und den Klassenpfad zur Kompilierungszeit des Testquellensatzes zur Kompilierungszeit.
        compileClasspath = sourceSets.main.output + configration.testCompile
        //Beziehen Sie sich zur Laufzeit auf die eigene Ausgabeklasse, zur Kompilierungszeit auf den Klassenpfad und auf denselben Klassenpfad wie zur Laufzeit des Testquellensatzes
        runtimeClasspath = output + compileClasspath + configradion.testCompile
    }
}

task doIntegrationTest(type: Test) {
    //Testen Sie die Ausgabe des Source Set IntegrationTest
    testClassDir = sourceSets.integrationTest.output.classDir

    //Legen Sie beim Ausführen des Tests den IntegrationTest runtimeClasspath im Klassenpfad fest
    classpath = sourceSets.integrationTest.runtimeClasspath

Referenz

Dieser Artikel wurde unter Bezugnahme auf die folgenden Bücher geschrieben.

Nachschlagewerk: [Gründliche Einführung in Gradle] Erstellen einer automatisierten Plattform mit Build-Tools der nächsten Generation](https://www.shoeisha.co.jp/book/detail/9784798136431)

Recommended Posts

[Gradle] Erstellen Sie ein Java-Projekt mit einer Konfiguration, die von der Konvention abweicht
Erstellen eines Java-Projekts mit Gradle
[Java] [Play Framework] Bis das Projekt mit Gradle gestartet wird
Ich möchte mit Java8 StreamAPI redu () einen anderen Typ als das Eingabeelement zurückgeben.
CICS-Java-Anwendung ausführen- (3) Build-Management mit Gradle
Erstellen und testen Sie Java + Gradle-Anwendungen mit Wercker
Erstellen Sie mit Gradle mit VSCode Java → Ausführen
Erstellen Sie mit Gradle Spring Boot-Projekte nach Umgebung
Java-Tipps - Erstellen Sie mit Gradle ein Spring Boot-Projekt
Fügen Sie mit Gradle ein Projekt in einen beliebigen Ordner ein
Erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
[Hinweis] Java: Erstellen Sie ein einfaches Projekt, während Sie lernen, wie die Einstellungsdatei funktioniert.
Erstellen Sie die VS Code + WSL + Java + Gradle-Umgebung von Grund auf neu
Rufen Sie eine Methode mit Kotlins Rückrufblock von Java aus auf
Java baut ein Dreieck
Erster Gradle Build (Java)
Verwenden der Datenbank (SQL Server 2014) aus einem Java-Programm 2018/01/04
[Hinweis] Erstellen Sie mit Docker eine Java-Umgebung von Grund auf neu
Überprüfen Sie die Abdeckung mit Codecov in der Java + Gradle + Wercker-Konfiguration
Erstellen Sie Java mit Wercker
Bis Sie mit Maven ein von Scala geschriebenes Projekt erstellen und es mit dem Befehl scala ausführen.
Suchen Sie die Adressklasse und den Adresstyp aus der IP-Adresse mit Java
Erstellen Sie mit Gradle ein Java-Multiprojekt
Verwenden von Docker von Java Gradle
Mit [AWS] CodeStar können Sie ein Spring (Java) -Projekt erstellen, das auf Lambda in nur 3 Minuten ausgeführt wird! !!
AWS Elastic Beanstalk # 1 mit Java von Grund auf neu Erstellen einer Java-Webanwendungsumgebung mit EB CLI-
Erstellen Sie einen einfachen Webserver mit der Java-Standardbibliothek com.sun.net.httpserver
Probieren Sie HelloWorld mit der Mindestkonfiguration von Heroku Java Spring-Boot aus
Greifen Sie von einem Java-Client aus auf das speicherinterne Datenraster Apache Ignite zu
Ersetzen Sie durch einen Wert entsprechend der Übereinstimmung mit einem regulären Java-Ausdruck
Eine Geschichte über das Erreichen der League Of Legends-API mit JAVA
[Java] Von der Erstellung neuer Projekte bis zur automatischen Realisierung von Tests / Builds / Bereitstellungen
Die Geschichte, ein Projekt zu bauen, das Maven mit Ant gebaut hat
Sie können die Version der Projektfacette nicht von einem dynamischen Webmodul in x.x ändern. Wie man damit umgeht
Erstellen Sie mit Docker eine Node.js-Umgebung
Erstellen Sie mit Pleiades 4.8 eine Tomcat 8.5-Umgebung
Code Java von Emacs mit Eclim
Führen Sie eine Batchdatei von Java aus
Erstellen Sie eine Webanwendung mit Javalin
Erstellen Sie ein Java-Projekt mit Eclipse
Erstellen Sie Java mit Mac vs Code
Folgen Sie dem Link mit Selen (Java)
Arbeiten Sie mit Google-Tabellen aus Java
Der Weg von JavaScript nach Java
Erstellen Sie ein Maven-Projekt mit Befehlen
Finden Sie die Adressklasse und den Adresstyp aus der IP-Adresse mit Java [Abkochung Nr. 2]
Eine Sammlung von Phrasen, die das "unterschiedliche Gefühl" von Java und JavaScript beeindruckt
Die Geschichte eines Game Launcher mit automatischer Ladefunktion [Java]
Lassen Sie uns das Ergebnis der Analyse von Java-Bytecode in einem Klassendiagramm ausdrücken
[Java] Erstellen Sie mit dem Befehl jar eine JAR-Datei, die sowohl komprimiert als auch nicht komprimiert ist
Ich kann nicht bauen, wenn ich das Build-Ziel mit XCode12 auf einen Simulator setze!
Versuchen Sie, mit Keycloak (Security Proxy Edition) eine Konfiguration vom Typ Liverpro zu erstellen.
<java> Teilen Sie die Adresse vor und nach der Adresse mit einem regulären Ausdruck