Я не могу деломбокнуть мой исходный код Java, по-видимому, из-за зависимостей jar, которые есть в проекте, и я не понимаю, почему. Есть два jar-файла, которые необходимо зафиксировать в репозитории, чтобы добавить их в проект, и они добавляются в проект в узле dependencies
файла build.gradle
путем добавления строки compile files('myproj1.jar')
. Итак, соответствующая часть файла build.gradle
выглядит так:
dependencies {
compile files('myproj1.jar')
compile files('myproj2.jar')
.....
}
Когда я запускаю задачу delombok, я получаю следующую ошибку:
Execution failed for task ':delombok'.
> taskdef class lombok.delombok.ant.Tasks$Delombok cannot be found
using the classloader AntClassLoader[/path/to/repo/myproj1.jar:/path/to/repo/myproj2.jar]
Почему задача delombok использует AntClassLoader
из файлов jar?
Я попробовал код delombok'ing из этой записи
Вот задание из моего build.gradle
файла
def srcJava = 'src/main/java'
def srcDelomboked = 'build/src-delomboked'
task delombok {
// delombok task may depend on other projects already being compiled
dependsOn configurations.compile.getTaskDependencyFromProjectDependency(true, "compileJava")
// Set up incremental build, must be made in the configuration phase (not doLast)
inputs.files file(srcJava)
outputs.dir file(srcDelomboked)
doLast {
FileCollection collection = files(configurations.compile)
FileCollection sumTree = collection + fileTree(dir: 'bin')
ant.taskdef(name: 'delombok', classname: 'lombok.delombok.ant.Tasks$Delombok', classpath: configurations.compile.asPath)
ant.delombok(from:srcJava, to:srcDelomboked, classpath: sumTree.asPath)
}
}
Я ожидаю, что смогу сделать мой исходный код Java как часть процесса сборки, чтобы при компиляции проекта не было никаких зависимостей от Lombok.