apply plugin: 'application' sourceSets.main.resources.srcDirs += [ rootProject.file('assets').path ] application.mainClass = 'com.mygdx.game.lwjgl2.Lwjgl2Launcher' eclipse.project.name = appName + '-lwjgl2' java.sourceCompatibility = 8 java.targetCompatibility = 8 if (JavaVersion.current().isJava9Compatible()) { compileJava.options.release.set(8) } dependencies { implementation "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion" implementation "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop" implementation "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-desktop" implementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" implementation project(':core') } jar { archiveBaseName.set(appName) // the duplicatesStrategy matters starting in Gradle 7.0; this setting works. duplicatesStrategy = DuplicatesStrategy.EXCLUDE dependsOn configurations.runtimeClasspath from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } // these "exclude" lines remove some unnecessary duplicate files in the output JAR. exclude('META-INF/INDEX.LIST', 'META-INF/*.SF', 'META-INF/*.DSA', 'META-INF/*.RSA') dependencies { exclude('META-INF/INDEX.LIST', 'META-INF/maven/**') } // setting the manifest makes the JAR runnable. // enabling native access helps avoid a warning when Java 24 or later runs the JAR. manifest { attributes 'Main-Class': application.mainClass, 'Enable-Native-Access': 'ALL-UNNAMED' } // this last step may help on some OSes that need extra instruction to make runnable JARs. doLast { file(archiveFile).setExecutable(true, false) } } // Equivalent to the jar task; here for compatibility with gdx-setup. tasks.register('dist') { dependsOn 'jar' } run { ignoreExitValue = true }