He encontrado algunas (creo recientemente introducido) función que permite hacerlo con Gradle.
En build.gradle archivo para el proyecto que contiene fuentes maravilloso que tenemos que añadir siguientes líneas:
compileGroovy {
configure(groovyOptions) {
configurationScript = file("$rootDir/config/groovy/compiler-config.groovy")
}
}
o compileTestGroovy { ...
para la aplicación de la misma a las fuentes de prueba. Tenga en cuenta que ni la compilación estática ni la comprobación de tipos funcionan bien con Spock Framework. Spock por su naturaleza utiliza mucho 'groovyness' dinámico.
A continuación, en una raíz del proyecto Crear carpeta config/maravilloso/ y un archivo llamado compilador config.groovy dentro. El contenido del archivo es la siguiente:
import groovy.transform.CompileStatic
withConfig(configuration) {
ast(CompileStatic)
}
Obviamente ruta y el nombre de la configurationScript pueden variar y depende de ti. No debería ir al mismo src/main/groovy, ya que sería mezclar preocupaciones totalmente separadas.
Lo mismo se puede hacer con groovy.transform.TypeChecked
o cualquier otra anotación, por supuesto.
Para invertir el comportamiento aplicado en ciertas clases o métodos, se pueden usar la anotación @CompileDynamic
o @TypeChecked(TypeCheckingMode.SKIP)
, respectivamente.
No estoy seguro de cómo lograr lo mismo cuando no se usa Gradle como herramienta de compilación. Sin embargo, puedo actualizar esta respuesta en el futuro con esa información.
Gracias, acabo de votar el problema JIRA y ahora lo sigo. – topr
https://issues.apache.org/jira/browse/GROOVY-5503 –
Como se menciona en @topr, esta es ahora una característica de Groovy 2.1+, podría ser bueno actualizar la respuesta para los visitantes futuros. – Terence