因为Xtend代码被编译为Java,所以堆栈跟踪包含生成的Java源代码的行号,而不是原始的Xtend源代码:
package test
class Main
{
def static void main(String[] args)
{
method // line #7
}
def static method()
{
throw new RuntimeException // Line #12
}
}
堆栈跟踪:
Exception in thread "main" java.lang.RuntimeException
at test.Main.method(Main.java:10)
at test.Main.main(Main.java:6)
我的问题:是否有可能在堆栈跟踪中显示Xtend行号?
我问它是因为首先浏览Java代码并不熟悉,然后找出相应的Xtend代码(特别是没有IDE)。
此外(理论上)生成的 Java代码可能无法签入SCM系统。
答案 0 :(得分:1)
不幸的是,没有IDE,目前无法做到这一点。如果您使用Eclipse,则可以将堆栈跟踪复制/粘贴到Java Stack Trace Console(控制台视图中打开consol按钮旁边的下拉列表),然后,当您单击stacktrace的任何部分时,它将带您到xtend源中的正确位置 - 无需从生成的java源手动回溯它。