Как получить результаты преобразования артефакта Gradle?

В Gradle есть пример, показывающий, как пользовательский плагин можно использовать для преобразования устаревших JAR-файлов. в модули Java 9+. Я адаптировал его в свою собственную сборку, и теперь я хотел бы использовать сгенерированные модули с JLink для создания пользовательского образа JRE. Однако я не знаю, как получить путь к каждому сгенерированному артефакту в моей пользовательской задаче jlink. Добавляет ли Gradle результат преобразования артефактов в качестве зависимостей?


person David Brown    schedule 22.05.2020    source источник


Ответы (1)


Я наконец-то понял. По крайней мере, для образца, предоставленного командой Gradle, преобразованные артефакты становятся частью конфигурации runtimeClasspath. Итак, вот как я строю путь к модулю:

def javaHome = System.getProperty("java.home")
def modulePath = ["libs", [javaHome, "jmods"].join(File.separator)]
project.configurations.runtimeClasspath.each { f->
    if (!modulePath.contains(f.absolutePath)) {
        modulePath.add(f.absoluteFile.parent)
    }
}
person David Brown    schedule 26.05.2020