groovy局部转换执行顺序

groovy局部转换执行顺序,groovy,annotations,metaprogramming,immutability,abstract-syntax-tree,Groovy,Annotations,Metaprogramming,Immutability,Abstract Syntax Tree,我用@RetentionRetentionPolicy.SOURCE为注释@WithLogging编写了自己的本地ASTTransformation,其中ASTTransformation将@GroovyASTTransformationphase=compileBase.CANONICALIZATION作为编译阶段。 当我注释我的类时,ASTTransformation将日志添加到它可以在这个类中找到的所有方法和构造函数中。到目前为止,这一切都很好 现在,我还用@Immutable注释我的类,

我用@RetentionRetentionPolicy.SOURCE为注释@WithLogging编写了自己的本地ASTTransformation,其中ASTTransformation将@GroovyASTTransformationphase=compileBase.CANONICALIZATION作为编译阶段。 当我注释我的类时,ASTTransformation将日志添加到它可以在这个类中找到的所有方法和构造函数中。到目前为止,这一切都很好

现在,我还用@Immutable注释我的类,它从类字段创建构造函数。我的@WithLogging注释现在不会记录这些内容

似乎@Immutables转换是在我的@Withlogging转换之后执行的。调试起来很困难,因为例如,我的ASTTransformation子类中的println不起作用,但是方法被修饰得很好


有人能给黑暗带来光明吗?在调试这些转换时,有什么需要考虑的吗?

看起来像一个复制品。是的,这似乎回答了我的问题,谢谢!