2014-07-08 5 views
11

Ich möchte standardOutput einer Build-Aufgabe in Datei ändern, weil es später von einer anderen Aufgabe geparst wird.Gradle: Aufgabe Standardausgabe an Datei und Terminal gleichzeitig

Aber auch, ich hätte gerne gleichzeitig im Terminal ausgegeben, um zu sehen, was im Build vor sich geht.

Dies ist, wie ich Ausgabe der Aufgabe in die Datei geändert:

task sampleTaskWithOutputToFile(type: Exec) { 
    commandLine 'someCommand', 'param1' 

    doFirst { 
     standardOutput = new FileOutputStream('someFolder/someFile.out') 
    } 
} 

Wie ich verstehe, ich eigene OutputStream Umsetzung mit Ausgang System.outgleichzeitig Datei und Standard schreiben kann, aber ich verwenden möchte bestehende Lösung.

Auch kann ich verwenden Unix-Tools nicht wie tee für das, kann wegen Aufgabe von jedem Betriebssystem (Mac OS, Linux Einige oder sogar Windows ...)

Dank gestartet werden!

+2

Einige Drittanbieter-Java-Bibliotheken (z Apache Commons) eine 'TeeOutputStream' haben mich zu bauen. –

+0

Okay, danke, ich werde es versuchen! –

Antwort

12

darzulegen, Peter N Kommentar über TeeOutputStream:

task sampleTaskWithOutputToFile(type: Exec) { 
    commandLine 'someCommand', 'param1' 

    doFirst { 
     standardOutput = new org.apache.tools.ant.util.TeeOutputStream(
      new FileOutputStream("someFolder/someFile.out"), System.out); 
    } 
} 
0

Die Ordnerstruktur wie Und es in D-Laufwerk.

    BuildDemo       
          |------DataCollector 
            |------DataCollector 
               |------bin 
                 |------Development 
                    |------*.dtsx   //source code 
                    |------DataCollector.ispac 
               |------obj 
               |------*.* 
            |------DataCollector.sln 

Das Projekt ist Datacollector i mit

d:\BuildDemo\DataCollector>"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com" DataCollector.sln /rebuild "Development|Default" 
Verwandte Themen