// group / version / java / repositories kommen vom Root-Build. // Kein 'application'-Plugin: dessen DistributionPlugin nutzt afterEvaluate, // was mit runtimeOnly project(':blight-game') in blight-editor kollidiert. plugins { id 'java' } ext { mainClassName = 'de.blight.game.BlightGame' } ext { jmeVersion = '3.9.0-stable' } dependencies { implementation project(':blight-common') implementation project(':blight-assets') implementation project(':blight-map') implementation project(':blight-lang') implementation "org.jmonkeyengine:jme3-core:${jmeVersion}" implementation "org.jmonkeyengine:jme3-desktop:${jmeVersion}" implementation "org.jmonkeyengine:jme3-lwjgl3:${jmeVersion}" implementation "org.jmonkeyengine:jme3-terrain:${jmeVersion}" implementation "org.jmonkeyengine:jme3-effects:${jmeVersion}" implementation "org.jmonkeyengine:jme3-jbullet:${jmeVersion}" implementation "org.jmonkeyengine:jme3-jogg:${jmeVersion}" implementation "org.jmonkeyengine:jme3-plugins:${jmeVersion}" implementation "org.jmonkeyengine:jme3-testdata:${jmeVersion}" implementation 'com.google.code.gson:gson:2.11.0' implementation 'org.slf4j:slf4j-api:2.0.17' implementation 'org.slf4j:jul-to-slf4j:2.0.17' runtimeOnly 'ch.qos.logback:logback-classic:1.5.18' compileOnly 'org.projectlombok:lombok:1.18.38' annotationProcessor 'org.projectlombok:lombok:1.18.38' } 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 } tasks.register('run', JavaExec) { group = 'application' description = 'Startet das Spiel' mainClass = mainClassName classpath = sourceSets.main.runtimeClasspath jvmArgs = [ '--add-opens', 'java.base/java.lang=ALL-UNNAMED', '--add-opens', 'java.desktop/sun.awt=ALL-UNNAMED', "-Djava.library.path=${buildDir}/natives", ] dependsOn extractNatives workingDir = rootDir } jar { manifest { attributes 'Main-Class': mainClassName } }