У меня есть метод, который принимает строку и закрытие, которое я включаю в мое соглашение о плагине:
def someMethod( String obj, Closure closure) {
println('HERE I AM')
confFileTree = project.fileTree( obj, closure )
}
Из теста Junit я называю это так:
project.convention.plugins.license.licenseFiles( 'src') {
include "main/java/**"
include "main/resources/*.properties"
exclude "**/Licensed.java"
}
Я знаю, что метод вызван, потому что напечатано «ЗДЕСЬ Я ЕСМЬ». Но тогда я получаю сообщение об ошибке:
org.gradle.api.internal.MissingMethodException:
Could not find method fileTree() for arguments
[src, nl.javadude.gradle.plugins.license.tasks.LicenseTaskTest$_shouldScanFilesForLicenseWithExclude_closure1@3cbdb6ae]
on root project 'test'.
Я должен заявить, что этот код первоначально назывался формой Closure для fileTree, с "from 'src'" в замыкании, что прекрасно работает, но этап Gradle 8 говорит мне, что это устаревший метод.