diff --git a/grammar2uml/build.gradle b/grammar2uml/build.gradle
index f6e699877eaed982d200d60889800a58ab880a2f..c7a40d50f6f0445544337c13bc14d3c9caf206cf 100644
--- a/grammar2uml/build.gradle
+++ b/grammar2uml/build.gradle
@@ -23,12 +23,8 @@ repositories {
     mavenCentral()
 }
 
-jar {
-    manifest.attributes "Main-Class": "${mainClassName}"
-}
-
 dependencies {
-    implementation project(':relast.preprocessor')
+    api project(':relast.preprocessor')
 
     implementation group: 'net.sourceforge.plantuml', name: 'plantuml', version: '1.2022.2'
 
@@ -135,7 +131,7 @@ jastadd {
     scanner.genDir = "src/gen/java/de/tudresden/inf/st/jastadd/grammar2uml/scanner"
     parser.genDir = "src/gen/java/de/tudresden/inf/st/jastadd/grammar2uml/parser"
 
-    // defalt options are: '--rewrite=cnta', '--safeLazy', '--visitCheck=false', '--cacheCycle=false'
+    // default options are: '--rewrite=cnta', '--safeLazy', '--visitCheck=false', '--cacheCycle=false'
     extraJastAddOptions = ["--lineColumnNumbers", "--List=JastAddList", "--visitCheck=true"]
 }
 
@@ -149,16 +145,20 @@ ext {
 
 application.mainClassName = "${mainClassName}"
 
+jar {
+    manifest.attributes "Main-Class": "${mainClassName}"
+}
+
 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}"
+        configurations.runtimeClasspath.collect {println it; it.isDirectory() ? it : zipTree(it) }
     }
+
+    manifest.attributes "Main-Class": "${mainClassName}"
 }
 
 def versionFile = 'src/main/resources/grammar2umlVersion.properties'
@@ -220,3 +220,4 @@ publishing {
 // --- Task order ---
 generateAst.dependsOn relast
 jar.dependsOn ":relast.preprocessor:jar"
+publish.dependsOn jar