Я собираю javafx с configuration = "compileOnly"
, поэтому в jar не упакованы нативные модули javafx.
javafx {
version = "13.0.1"
modules = [ 'javafx.controls', 'javafx.web', 'javafx.swing', 'javafx.fxml', 'javafx.graphics' ]
configuration = "compileOnly"
}
Затем я создаю образ времени выполнения с помощью "Badass Runtime Plugin" (https://github.com/beryx/badass-runtime-plugin) с модулями javafx платформы, добавленными к каждому jdk.
runtime {
options = ['--compress', '2']
modules = [
'jdk.httpserver',
...
'javafx.controls',
'javafx.web',
'javafx.swing',
'javafx.fxml',
'javafx.graphics'
]
targetPlatform('linux-x64', "$projectDir/jre/linux/jre_x64")
targetPlatform('windows-x64', "$projectDir/jre/windows/jre_x64")
//targetPlatform('mac-x64', "$projectDir/jre/mac/jre_x64")
}
Я сейчас пытаюсь заставить тесты gradle работать с использованием jre, созданного плагином времени выполнения, потому что в противном случае они создают sh из-за отсутствия модулей javafx.
Как установить время выполнения для тестов gradle, но не для компилятора?