我无法使用以下方式使Gradle从构建脚本中显示(突出显示)警告
logger.warn("something something")
与其他任何日志行一样,该行以普通形式发出,它的旁边没有WARN,我期望
--console=rich
有一些颜色,什么也没有。同样,警告仅在日志中的相应位置发出。
我希望它们在此发出,但也要在结尾发出,或者至少在结尾发出一些信号,以指示有警告。据说
--warning-mode=summary
是这样做的,但是没有任何效果。 我尝试了所有可能的组合,例如:
gradle --warning-mode=summary build
gradle build --warning-mode=all
gradle build --warning-mode all
gradle build -Dorg.gradle.warning.mode=all --console=rich --info
etc
我尝试了gradle 5.2和5.4.1。没有警告!
最佳答案
来自warn
的logger
消息始终看起来像这样。默认情况下,它们是可见的;而info
消息仅在使用--info
标志(或更详细)时显示。
实际上logger
是基于slf4j的;但是然后由Gradle来设置日志记录格式(他们选择不显示日志级别,也不显示时间戳等)。
调用logger.warn(..)
时,解析为project.logger
。请参见Project.getLogger()和Logger的引用。
一种显示彩色输出的方法(请参阅this SO post)是使用Gradle内部API,例如
import org.gradle.internal.logging.text.StyledTextOutput;
import org.gradle.internal.logging.text.StyledTextOutputFactory;
def out = services.get(StyledTextOutputFactory).create("my-factory")
out.withStyle(StyledTextOutput.Style.FailureHeader).println('Failure message')
out.withStyle(StyledTextOutput.Style.Success).println('Success message')
在消息中显示“WARN”的一种肮脏(微不足道)的方法显然是使用
logger.warn('WARN: message')
。最后,代替打印警告,可以通过引发异常来中断任务,以便Gradle停止构建并显示出问题所在。使用以下命令运行
gradle taskA
时:task taskB {
doLast{
throw new Exception("error here")
}
}
task taskA {
dependsOn taskB
}
关于gradle - Gradle未显示突出显示的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56590208/