The problem with the distZip
or jar
gradle tasks is they miss to include desktop dependencies.
When deploying to desktop you can change temporary desktopRuntime
to runtime
, so they will be included, as Ladislav T?r?k suggests, but then you should undo the change so that dependency isn't included in the mobile deployment.
If you want to have a working zip, we have to modify the distZip
task, to include the desktop dependencies in the lib folder, and also to include them in the class path (so they are also added to the scripts in the bin folder). Include this in your build.gradle
script:
startScripts {
classpath += configurations.desktopRuntime
}
distZip {
into("$project.name/lib") {
from configurations.desktopRuntime
}
}
You can also solve the issue by using the shadowJar
, providing you include the desktop dependencies, to create an executable fat jar, like in this solution.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…