summaryrefslogtreecommitdiff
path: root/server/build.gradle
diff options
context:
space:
mode:
Diffstat (limited to 'server/build.gradle')
-rw-r--r--server/build.gradle41
1 files changed, 41 insertions, 0 deletions
diff --git a/server/build.gradle b/server/build.gradle
new file mode 100644
index 0000000..1aaf851
--- /dev/null
+++ b/server/build.gradle
@@ -0,0 +1,41 @@
+apply plugin: 'application'
+
+
+java.sourceCompatibility = 11
+java.targetCompatibility = 11
+if (JavaVersion.current().isJava9Compatible()) {
+ compileJava.options.release.set(11)
+}
+
+mainClassName = 'kz.ilotterytea.frogartha.server.ServerLauncher'
+application.setMainClass(mainClassName)
+eclipse.project.name = appName + '-server'
+
+dependencies {
+ implementation project(':shared')
+}
+
+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.
+ manifest {
+ attributes 'Main-Class': project.mainClassName
+ }
+// 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.
+task dist(dependsOn: [jar]) {
+}