我從gradle腳本調用ant.signjar。 如何捕獲其輸出? 我沒有輕易地將INFO的輸出提升到另一個級別,也沒有將輸出攔截或包裝成警告級別的錯誤警告。 目前Signjar迴應說證書很快就會過期,但是這並沒有顯示在WARN級別上,這不是很好。從Gradle調用Ant任務時如何攔截或提升日誌消息
6
A
回答
2
我假設Ant任務使用Ant的日誌記錄框架,而不僅僅是打印到標準輸出。在那種情況下,你有沒有嘗試過以下方法?
task taskThatCallsAntTask {
logging.level = LogLevel.INFO
}
當以這種方式配置,而任務執行日誌級別將被更改爲INFO(並恢復了回到事後),無論哪個日誌級別調用搖籃時設置。請注意,您無法提升Ant日誌事件的日誌級別;它取決於它在哪個級別記錄的Ant任務。
0
這是一種通過在調用期間註冊自定義BuildListener來捕獲Ant任務輸出的方法。
def captureAntOutput(ant, Closure command) {
def buffer = new ByteArrayOutputStream()
def captureStream = new PrintStream(buffer, true, "UTF-8")
def listener = new org.apache.tools.ant.DefaultLogger(
errorPrintStream: captureStream,
outputPrintStream: captureStream,
messageOutputLevel: org.apache.tools.ant.Project.MSG_INFO
)
ant.project.addBuildListener(listener)
project.configure(ant, command)
ant.project.removeBuildListener(listener)
return buffer.toString("UTF-8");
}
實例:
String result = captureAntOutput(ant) {
echo(message: "hello")
}
assert result.contains("hello")
相關問題
- 1. 攔截日誌消息slf4j
- 2. 如何關閉或攔截Logcat日誌?
- 3. 基於組件的日誌記錄(或:攔截外部日誌消息)
- 4. Gradle:從定製任務中調用ant
- 5. 如何攔截SOAP消息
- 6. 提升日誌消減長日誌消息
- 7. 在Spring集成中使用攔截器發送日誌消息
- 8. NServiceBus消息攔截?
- 9. 如何攔截我的應用程序代碼中的框架日誌消息?
- 10. 如何使用Junit Ant任務打印調試消息?
- 11. 攔截文本消息:調試問題
- 12. 從gradle-script-kotlin使用ant任務
- 13. 如何攔截Spring Cloud Stream消息?
- 14. jms消息攔截器
- 15. 攔截JSON消息 - Eclipse RAP
- 16. 如何攔截CXF web服務日誌記錄?
- 17. HTML消息或登錄頁面攔截Web服務請求
- 18. 日誌使用的log4net + AutoFac攔截
- 19. 芹菜截斷日誌消息
- 20. Ant從gradle調用的sshexec任務不顯示輸出
- 21. 回聲消息如果Java Ant任務提供了錯誤
- 22. 如何編輯WCF消息 - WCF消息攔截器
- 23. 如何攔截從HwndSource WndProc的消息,而無需任何內容
- 24. 日誌和調試消息
- 25. 如何攔截調用
- 26. 如何攔截POP3服務器上的郵件消息
- 27. 如何攔截來自Openfire服務器的Ping消息?
- 28. Spring/BlazeDS消息攔截器用例
- 29. 從eclipse調試Ant任務
- 30. 如何從Gradle測試中調用Gradle子項目的任務?
作爲一個側面注:搖籃提供[簽約插件](http://gradle.org/docs/current/userguide/signing_plugin.html)進行簽名工件,所以你不需要使用Ant任務。 – 2012-07-11 20:29:39
@BenjaminMuschko我知道簽名插件,但文檔說它僅用於生成文件的PGP簽名。上傳到Maven Central。如何使用簽名插件簽署JAR文件? – Vampire 2012-07-12 05:50:07