diff --git a/build.gradle b/build.gradle
index 5b94d55fc88260e98edcba2c4343fa1cdf8bf048..4cc2a5e10639453219127b35508f02ffc6866f85 100644
--- a/build.gradle
+++ b/build.gradle
@@ -149,6 +149,19 @@ jar {
 
 }
 
+task fatJar(type: Jar) {
+    dependsOn jar
+    group = "build"
+
+    archiveAppendix = "fatjar"
+    from sourceSets.main.output
+    from {
+        configurations.runtimeClasspath.collect {it.isDirectory() ? it : zipTree(it) }
+    }
+
+    manifest.attributes "Main-Class": "${mainClassName}"
+}
+
 // Generated files
 def ecoreFile = './src/main/resources/placeTransition.ecore'
 def ecoreRelastAspect = './src/gen/jastadd/pnml/placeTransition.ecore.jadd'