Grails가 적용될 클래스를 자동으로 다시로드 할 때만 실행되는 Groovy AST 변환을 작성했습니다. 프로젝트를 정리하고 run-app를 사용하여 응용 프로그램을 시작하면 AST 변환이 실행되지 않습니다. grails가 자동 재 로딩되도록 변형을 실행하도록 클래스를 만지십시오.Grails 컴파일 중에 Groovy AST 변환이 적용되지 않습니다. 자동 로딩 중에 만 적용됩니다.
주석 및 ASTTransformation 구현은 Grails 애플리케이션의 src/groovy 디렉토리에있는 그루비 클래스입니다. 주석은 도메인 클래스에서 사용되며 groovy로 도메인 디렉토리에 작성됩니다.
groovy 파일이 컴파일되거나 클래스 로더에 의해로드되는 순서가 원인 일 수 있습니까? 그렇다면 도메인 이전에 astransformation이 컴파일 /로드되었는지 어떻게 확인할 수 있습니까?
주석 :
@Target([ElementType.TYPE])
@Retention(RetentionPolicy.RUNTIME)
@GroovyASTTransformationClass(["com.abc.annotation.SecuredObjectASTTransformation"])
public @interface SecuredObject {
}
ASTTransforamtion 구현 :
이@GroovyASTTransformation(phase = CompilePhase.CANONICALIZATION)
class SecuredObjectASTTransformation implements ASTTransformation {
@Override
public void visit(ASTNode[] nodes, SourceUnit sourceUnit) {
// add some new properties...
}
}
Grails의 버전은 2.1.0이다.