Используется GroovyClassLoader.Есть некоторые оговорки, с которыми я столкнулся при работе с полями статических классов и перекрестными ссылками, но я в основном использую эту настройку в нескольких своих проектах.В некоторых случаях вам, возможно, придется посмотреть порядок загрузки.
def groovyClassLoader = new GroovyClassLoader()
def classPaths = [ '/opt/myProject/src/groovy/' ]
// First, add Class Paths -- these are the root directories of your code files.
for (String path in classPaths) {
File dir = new File(path)
groovyClassLoader.addClasspath(dir.getAbsolutePath())
}
def src = [ '/opt/myProject/src/groovy/net/me/program/' ]
// Now, load groovy files
for (String path in src) {
// Iterate differently if no access to FileUtils
File[] directoryListing = FileUtils.listFiles(new File(path), null, false)
if (directoryListing != null) {
for (File child in directoryListing) {
groovyClassLoader.parseClass(child)
}
}
}
// See all the loaded classes
println(groovyClassLoader.loadedClasses)