我有一个复杂的构建系统,涉及许多 ant 脚本,其中一些目标调用 javac 任务。
这些 ant 脚本不提供从 javac 请求调试构建的方法,即既未指定 javac 任务的 debug 参数也未指定 debuglevel 参数。
是否仍然可以指示 javac 在不更改构建脚本本身的情况下使用调试支持进行构建?
这些脚本是从控制台调用的。
不幸的是,简短的回答是否定的:(
Ant 脚本是否javac
通过调用外部可执行文件来调用,即是fork=true
?如果是这样,您可以尝试javac
在$PATH
. 像这样的工具strace
可以准确地告诉你是如何javac
被调用的。
在 Unix 上,它可能看起来像这样:
echo '#!/bin/bash
exec /usr/bin/javac -g "${@}"' > ./javac
chmod +x javac
PATH=".:${PATH}" ant build
如果 Ant 正在进程内调用 Java 编译器,您可以制作一个javac
默认打开调试的 Ant 任务类的编辑版本,并在调用 Ant 时将其放在类路径中的官方 Ant jar 之前。