Skip to content

feat: Maven 命令强制彩色输出,让 Lithe 控制台显示 Maven 的颜色 - #19

Merged
xiaoyumuxi merged 1 commit into
mainfrom
feat/colored-console-output
Nov 14, 2026
Merged

xiaoyumuxi merged 1 commit into
mainfrom
feat/colored-console-output

Conversation

@xiaoyumuxi

Copy link
Copy Markdown
Contributor

关联

改动

  • plugin.json 的 invocation.globalArguments 加 -Dstyle.color=always。Lithe 通过管道读取 Maven 输出,-B 批处理模式下 Maven 默认不输出颜色。带上这个参数后,[INFO]、[WARNING]、[ERROR] 和 BUILD SUCCESS 会保留 ANSI 颜色,桌面端解码后着色显示。参数对生命周期、插件目标、自定义目标、测试、运行配置,以及读取模型和依赖的命令都生效。
  • README 的功能表加一行“彩色输出”。

不受影响的部分

  • 诊断:Core 的 build.decodeDiagnostics 匹配 lineMatcher 前会先去掉 CSI 转义(rust/crates/build/src/outputs.rs 中的 strip_ansi),所以 ^\[(ERROR|WARNING)\] … 仍能匹配。
  • 测试结果读 Surefire/Failsafe 的 JUnit XML,项目模型和依赖读 ${outputFile},都不经过控制台输出。
  • 版本探测只传 version.arguments(--version),不带 globalArguments。

验证

  • 管道输出实测(mvn -B -ntp -Dstyle.color=always validate | cat -v):Maven 3.6.3、3.9.4、3.10.0 都输出 ESC[1;34mINFO 一类转义;不带这个参数时没有转义。
  • node scripts/test-process.mjs、node scripts/package.mjs:通过。
  • node scripts/test.mjs:Maven 3.10.0 和 3.6.3(CI 矩阵中最老的版本)各 14 项全部通过。
  • scripts/verify-scripts.mjs 需要 --host-bundle 指定已安装的 Lithe 程序包,本次没有运行;CI 也不运行它。

发版注意

  • 只在 macOS 上实测过管道输出颜色。Windows 上的 Maven 3.9+ 应该同样强制输出颜色,但还没在 Windows 真机上确认。
  • 在 #1932 之前发布的桌面端预发布版不解码转义,控制台会显示原始转义字符。插件新版本要等包含 #1932 的桌面端预发布版发布后再发。本 PR 没有改版本号,版本号由维护者决定。

globalArguments 加 -Dstyle.color=always。Lithe 用管道读 Maven 输出,-B 批处理模式下 Maven 默认不输出颜色;带上这个参数后,[INFO]、[WARNING]、[ERROR]、BUILD SUCCESS 会保留 ANSI 颜色,由 Lithe 桌面端解码后着色显示(1lck/Lithe-IDEA#1932,Core outputStyle.decode)。诊断匹配前 Core 已去掉颜色转义;测试结果读 JUnit XML,项目模型和依赖读输出文件,都不受影响。
@xiaoyumuxi
xiaoyumuxi marked this pull request as ready for review November 14, 2026 16:04
@xiaoyumuxi
xiaoyumuxi merged commit 33ef18f into main Nov 14, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant