2016-04-06 10 views
0

Ich habe ein Projekt, das Gradle als Build-Tool verwendet. Als Teil des Quellcodes für das Projekt gibt es ein Tool, das Konfigurationsdateien generiert, die für diese Anwendung benötigt werden. Das Konfigurationsgenerator-Tool ist eine Java-Klasse mit einer Hauptmethode, so dass es von Java oder von der Befehlszeile aus ausgeführt werden kann.Gradle Task zum Aufrufen von Build-Tools aus dem Projekt

Ich möchte eine Task hinzufügen, der den Config-Generator aufruft, nachdem er kompiliert und gejared wurde.

  • Was ist der empfohlene Weg zum Aufruf von Build-Tools, die Teil des Projekts sind?
  • Wie konfiguriere ich den Klassenpfad, damit der Konfigurationsgenerator mit den Projektabhängigkeiten für den Klassenpfad und nicht nur mit dem Klassenpfad für die JVM-Klasse aufgerufen werden kann?
+1

Sie JavaExec verwenden können jede beliebige Java-Code aufzurufen. https://docs.gradle.org/current/dsl/org.gradle.api.tasks.JavaExec.html – RaGe

Antwort

0

Dies ist die gradle Aufgabe, die ich verwendet, um meine Config-Tool ausführen und die Standardausgabe in eine Datei schreiben:

task generateConfig(type: JavaExec) { 
    dependsOn jar 
    main = 'com.example.ConfigGeneratorMain' 
    classpath configurations.runtime, jar.archivePath 
    doFirst { 
     def outputFile = new File(project.buildDir, 'resources/generated/config.json') 
     outputFile.mkdirs() 
     outputFile.delete() 
     outputFile.createNewFile() 
     standardOutput = new FileOutputStream(outputFile) 
    } 
} 
assemble.dependsOn generateConfig 
Verwandte Themen