Files
blight/blight-game/build.gradle
2026-05-07 11:54:11 +02:00

82 lines
2.0 KiB
Groovy

plugins {
id 'java'
id 'application'
}
group = 'de.blight'
version = '0.1.0'
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
sourceSets {
main {
resources {
srcDirs = ['src/main/resources', 'assets']
}
}
}
application {
mainClass = 'de.blight.game.BlightApp'
// jMonkeyEngine benötigt den headless-Flag nicht; nativer Fenstermodus
applicationDefaultJvmArgs = [
'--add-opens', 'java.base/java.lang=ALL-UNNAMED',
'--add-opens', 'java.desktop/sun.awt=ALL-UNNAMED',
'-Djava.library.path=${rootDir}/build/natives'
]
}
repositories {
mavenCentral()
}
ext {
jmeVersion = '3.7.0-stable'
}
dependencies {
// jMonkeyEngine core
implementation "org.jmonkeyengine:jme3-core:${jmeVersion}"
implementation "org.jmonkeyengine:jme3-desktop:${jmeVersion}"
implementation "org.jmonkeyengine:jme3-lwjgl3:${jmeVersion}"
// Terrain, Effects, Plugins
implementation "org.jmonkeyengine:jme3-terrain:${jmeVersion}"
implementation "org.jmonkeyengine:jme3-effects:${jmeVersion}"
// Bullet-Physik (nativ)
implementation "org.jmonkeyengine:jme3-jbullet:${jmeVersion}"
// Testdaten / eingebaute Assets (Primitiv-Modelle, Skybox etc.)
implementation "org.jmonkeyengine:jme3-testdata:${jmeVersion}"
// JSON für Key-Binding-Konfiguration
implementation 'com.google.code.gson:gson:2.11.0'
}
// Native Libraries automatisch entpacken
tasks.register('extractNatives', Copy) {
def nativeConf = configurations.runtimeClasspath.resolvedConfiguration
.resolvedArtifacts
.findAll { it.name.contains('natives') }
.collect { zipTree(it.file) }
from nativeConf
into "${buildDir}/natives"
duplicatesStrategy = DuplicatesStrategy.INCLUDE
}
run {
dependsOn extractNatives
workingDir = rootDir
}
jar {
manifest {
attributes 'Main-Class': application.mainClass
}
}