升级到 Gradle 6 后,上传的 War 或 Tar 信息未在 Jenkins 控制台上打印
Posted
技术标签:
【中文标题】升级到 Gradle 6 后,上传的 War 或 Tar 信息未在 Jenkins 控制台上打印【英文标题】:Uploaded War or Tar information is not printing on Jenkins console after upgrading to Gradle 6 【发布时间】:2020-05-23 15:47:53 【问题描述】:我已将gradle
从4.6
更新为6.1
,现在的问题是我在运行publishBootJavaPublicationToMavenRepository
任务时看不到任何打印在jenkins 控制台上的信息。
在此任务之后使用查看类似Upload: http://nexusblabla.war
的内容之前
但现在这个任务没有打印任何东西。
【问题讨论】:
我们在最近从 3.4.1 升级到 6.0.1 的过程中遇到了一些可能相关的问题。我不确定,但我的印象是他们改变了引擎盖下的一些标准输出捕获。最初通过管道传输到 stdout 的内容现在可能只写入记录器。他们使用的消息传递架构仍然让我感到困惑,所以我很难调试这些东西...... 【参考方案1】:tl;博士
如果您只是想取回上传文件的日志消息,那么您必须使用 Gradle 的 --info
命令行选项。继续你的例子:
gradle --info publishBootJavaPublicationToMavenRepository
一些背景
我不知道为什么,但显然这些消息的日志级别在 Gradle 4.10 中已从 LIFECYLCE
更改为 INFO
。发布时可以通过--debug
选项看到区别:
11:44:55.666 [LIFECYCLE] [org.gradle.internal.resource.transfer.ProgressLoggingExternalResourceUploader] Upload http://127.0.0.1:8000/com/example/foo/1.0.0/foo-1.0.0.zip
使用 Gradle 4.10.3,您将获得:
11:55:44.666 [INFO] [org.gradle.api.publication.maven.internal.action.LoggingMavenTransferListener] Uploading: com/example/foo/3.0.0/foo-3.0.0.zip to repository remote at http://127.0.0.1:8000/
不幸的是,发行说明或任何问题/提交中似乎都没有提及此更改 - 或者至少我找不到任何此类提及。为了完整起见,以下是 4.6 之后的 Gradle 版本的所有与控制台日志记录相关的发行说明条目:
https://docs.gradle.org/4.7/release-notes.html#logs-grouped-by-task-for-non-interactive-executions https://docs.gradle.org/4.8.1/release-notes.html#changes-to-plain-console-behavior https://docs.gradle.org/5.2.1/release-notes.html#rich-console-improvements-on-windows https://docs.gradle.org/5.6.4/release-notes.html#rich-console-output-on-linux-aarch64-machines【讨论】:
以上是关于升级到 Gradle 6 后,上传的 War 或 Tar 信息未在 Jenkins 控制台上打印的主要内容,如果未能解决你的问题,请参考以下文章
类型“JavaCompile”属性“options.compilerArgumentProviders.apt$0.name”缺少输入或输出注释。升级到 Gradle 7 后出错
gradle-aws-plugin elasticbeanstalk 如何部署上传的版本
flutter升级AS和gradle后编译出错(No signature of method: build_gbqp6.android())错误
flutter升级AS和gradle后编译出错(No signature of method: build_gbqp6.android())错误