2014-07-08 11 views
11

Bir yapı görevinin standardOutput dosyasını değiştirmek istiyorum, çünkü daha sonra başka bir görev tarafından ayrıştırılacaktır.Gradle: task's standart Dosya ve terminale eşzamanlı olarak geçiş

Ayrıca, aynı zamanda, inşada neler olduğunu görmek için terminalde aynı anda çıkış yapmak istiyorum. Anlıyorum gibi

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

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

, ben dosyaya çıktı ve aynı anda standart System.outile kendi OutputStream uygulama yazabilir ama mevcut kullanmak istiyorum:

Bu

ben dosyaya görevin çıkışını nasıl değiştiğini olduğunu çözüm. Görev herhangi OS (Mac OS, Linux Bazı hatta, Windows ...)

Teşekkür başlatılabilir çünkü

Ayrıca, bunun için tee gibi unix araçları kullanamaz!

+2

Java kütüphaneleri (örn Apache Commons) bir 'TeeOutputStream' var Bazı üçüncü parti kullanıyorum oluşturmak için DataCollector olduğunu. –

+0

Tamam, teşekkürler, bunu deneyeceğim! –

cevap

12

TeeOutputStream ilişkin Peter N'in yorumum açımlamak:

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

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

Klasör Yapısı gibi Ve D sürücüsüne.

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

proje

i

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