Znalazłem kilka (wierzę niedawno wprowadzono) cechę, która pozwala to zrobić z Gradle.
W build.gradle pliku do projektu zawierającego źródła odjechane musimy dodać następujące wiersze:
compileGroovy {
configure(groovyOptions) {
configurationScript = file("$rootDir/config/groovy/compiler-config.groovy")
}
}
lub compileTestGroovy { ...
stosowania samo źródeł badawczych. Należy pamiętać, że ani kompilacja statyczna, ani sprawdzanie typów nie działa dobrze w Spock Framework. Spock z natury wykorzystuje dynamiczną "groovyness".
Następnie w katalogu głównym projektu Utwórz folder config/groovy/ oraz plik o nazwie kompilator config.groovy wewnątrz. Zawartość pliku jest następujący:
import groovy.transform.CompileStatic
withConfig(configuration) {
ast(CompileStatic)
}
Oczywiście ścieżka i nazwa configurationScript mogą się różnić i to do ciebie. Nie powinno to raczej iść do tego samego src/main/groovy, choć mogłoby to doprowadzić do zmieszania całkowicie oddzielnych problemów.
To samo można zrobić z groovy.transform.TypeChecked
lub inną adnotacją, oczywiście.
Aby odwrócić stosowane zachowanie w niektórych klasach lub metodach, można użyć odpowiednio adnotacji @CompileDynamic
lub @TypeChecked(TypeCheckingMode.SKIP)
.
Nie jestem pewien, jak osiągnąć to samo, gdy Gradle nie jest używany jako narzędzie do kompilacji. Mogę jednak zaktualizować tę odpowiedź w przyszłości za pomocą takich informacji.
Dziękuję, właśnie przegrałem sprawę JIRA, a teraz nadążam za nią. – topr
https://issues.apache.org/jira/browse/GROOVY-5503 –
Jak wspomniano w @topr, jest to obecnie funkcja w wersji 2.1 lub nowszej, może warto zaktualizować odpowiedź dla przyszłych użytkowników. – Terence