如何通过groovy从cmd写入日志文件?(格拉德尔)

如何通过groovy从cmd写入日志文件?(格拉德尔),groovy,cmd,gradle,wsimport,Groovy,Cmd,Gradle,Wsimport,我有一个应用程序,在主gradle文件中我写道: task myTask { def command = "wsimport -s src" + File.separator + "main" + File.separator + "java -d " + classesDir + " path to my WSDL-file -b bindings/bindingFirst.xml -b bindings/bindingSecond.xml>>bindings/OutInf

我有一个应用程序,在主gradle文件中我写道:

task myTask {
    def command = "wsimport -s src" + File.separator + "main" + File.separator + "java -d " + classesDir + " path to my WSDL-file -b bindings/bindingFirst.xml -b bindings/bindingSecond.xml>>bindings/OutInfo.log" // Create the String
    def proc = command.execute()                 // Call *execute* on the string
    proc.waitFor()                               // Wait for the command to finish

// Obtain status and output
    println "return code: ${ proc.exitValue()}"
    println "stderr: ${proc.err.text}"
    println "stdout: ${proc.in.text}" // *out* from the external program is *in* for groovy
}
行中有一个问题:“>>bindings/OutInfo.log”,为什么

返回代码:1
stderr:线程“main”com.sun.xml.internal.ws.streaming.xmlreader异常:无法创建StAX读取器或写入器
位于com.sun.xml.internal.ws.api.streaming.XMLStreamReaderFactory.create(XMLStreamReaderFactory.java:134)
位于com.sun.tools.internal.ws.wscompile.WsimportOptions.parseBindings(WsimportOptions.java:430)
位于com.sun.tools.internal.ws.wscompile.WsimportTool.run(WsimportTool.java:162)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:606)
位于com.sun.tools.internal.ws.Invoker.invoke(Invoker.java:120)
位于com.sun.tools.internal.ws.WsImport.main(WsImport.java:42)
由以下原因引起:java.io.FileNotFoundException:/home/../examplewimport/bindings/bindingssecond.xml>>bindings/OutInfo.log(无此类文件或目录)
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(FileInputStream.java:146)
位于java.io.FileInputStream。(FileInputStream.java:101)
位于sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
位于sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
在java.net.URL.openStream(URL.java:1037)
位于com.sun.xml.internal.ws.api.streaming.XMLStreamReaderFactory.create(XMLStreamReaderFactory.java:132)
... 8个以上

如何在日志文件中写入命令wsimport的结果?(在gradle(groovy)中)

你不能这样做流重定向,你能试试吗:

def fs = File.separator

def command = "wsimport -s src${fs}main${fs}java -d $classesDir path to my WSDL-file -b bindings${fs}bindingFirst.xml -b bindings${fs}bindingSecond.xml"

new File( 'bindings/OutInfo.log' ).withWriterAppend { out ->
   out << command.execute().text
}
def fs=File.separator
def command=“wsimport-s src${fs}main${fs}java-d$classesDir指向我的WSDL文件的路径-b bindings${fs}bindingsfirst.xml-b bindings${fs}bindingssecond.xml”
新文件('bindings/OutInfo.log')。withWriterAppend{out->
出来
def fs = File.separator

def command = "wsimport -s src${fs}main${fs}java -d $classesDir path to my WSDL-file -b bindings${fs}bindingFirst.xml -b bindings${fs}bindingSecond.xml"

new File( 'bindings/OutInfo.log' ).withWriterAppend { out ->
   out << command.execute().text
}