Внутри файла build.gradle
, какой самый краткий способ получить список всех пакетов в SourceSet
?
Я могу получить его, анализируя каждый исходный файл, как показано ниже -
def sourceSet = project.sourceSets.findByName('test')
def pattern = Pattern.compile('package (\\S+);')
def packages = []
sourceSet.allSource.each {
for (def scan = new Scanner(it); scan.hasNext();) {
def matcher = scan.nextLine() =~ pattern
if (matcher.matches()) {
packages << matcher[0][1]
break
}
}
}
packages.unique(true)
// allows, e.g.
packages.each { println it }
- но кажется, что должен быть лучший способ.
Отредактировано, чтобы добавить: Мне нужна эта информация для передачи дополнительных аргументов JVM во время компиляции, поэтому мне нужно получить ее из исходного кода перед компиляцией.