如何在ant中自定义AnsiColorLogger的颜色?

5
目前我的ant输出是通过AnsiColorLogger实现彩色化的。它的效果符合预期,但是我想自定义颜色(默认的颜色太暗了)。我按照规定创建了一个颜色文件,但不知道如何传递文件名。文档中说:

此文件必须指定为名为ant.logger.defaults的系统变量的值,并使用-D选项将其作为参数传递给调用Ant应用程序的java命令。

如果我只在终端上使用ant运行,该如何向java命令传递参数?我尝试传递:

-Dant.logger.defaults=<my file path>

我尝试过将其转换为ant,但是没有成功。我还尝试设置环境变量。

ANT_OPTS='-Dant.logger.defaults=<my file path>'

但这也没有起作用。如果有关系的话,我使用的是

  • OS X 10.10.5
  • Apache Ant(TM)版本1.9.6
  • Java 1.8.0_65

你的自定义颜色文件在哪个目录中? - Developer Marius Žilėnas
@Willmore,感谢您的指引。确实是目录的原因。 - Franklin Yu
2个回答

2
我找到了我的错误:我的文件路径是~/my-file,但在单引号中的~没有被扩展。如此简单。
(我忘记了在终端中使用~时,它会在传递给程序之前由shell进行扩展。)

1

ant 的典型设置:

export ANT_HOME="${HOME}/opt/apache-ant"
export ANT_ARGS="-logger org.apache.tools.ant.listener.AnsiColorLogger"
export ANT_OPTS="-Dant.logger.defaults=${HOME}/etc/ant-colors.properties"
export PATH="${ANT_HOME}/bin:${PATH}"

在这种情况下,我已经在我的主目录下的opt/中安装了ant,而它的颜色配置也类似地在主目录下的etc/中。这可以根据需要进行自定义。使用${HOME}避免了~的问题,只要我像示例中一样使用双引号而不是单引号即可。
我的最初错误是认为-D可以与ANT_ARGS一起添加,但我们需要以上两者ANT_ARGSANT_OPTS
这是我在macOS上使用的ant-colors.properties
AnsiColorLogger.ERROR_COLOR=31
AnsiColorLogger.WARNING_COLOR=35
AnsiColorLogger.INFO_COLOR=36
AnsiColorLogger.VERBOSE_COLOR=32
AnsiColorLogger.DEBUG_COLOR=34

请注意,我省略了属性前缀“2;”,因为这会使输出加粗。我也不使用“1;”,因为那样输出的颜色太浅了。相反,我将其保留为默认值,这对我来说具有理想的可见性。
请注意,语法如下:
AnsiColorLogger.*=Attribute;Foreground;Background

这真的非常有帮助。我尝试了 oh-my-zsh 的 ant 插件,但也发现颜色太暗了。我只在 .oh-my-zsh/plugins/ant/ant.plugins.zsh 脚本中添加了 ANT_OPTS 行,并使用了您提供的 ant-colors.properties 文件示例,现在看起来很棒! - BenjaminBallard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接