Files
blight/blight-game/build.gradle
2026-06-04 22:40:17 +02:00

67 lines
2.3 KiB
Groovy

// 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
}
}