diff --git a/buildSrc/src/main/groovy/eraser.java-common-conventions.gradle b/buildSrc/src/main/groovy/eraser.java-common-conventions.gradle
index ce14101fcf3d18fee23d3f4355348e936fa173b7..4e7d518113abd5cf84daf9428e4c30db1c02310c 100644
--- a/buildSrc/src/main/groovy/eraser.java-common-conventions.gradle
+++ b/buildSrc/src/main/groovy/eraser.java-common-conventions.gradle
@@ -7,6 +7,10 @@ plugins {
 
 repositories {
   mavenCentral()
+  maven {
+    name "gitlab-maven"
+    url "https://git-st.inf.tu-dresden.de/api/v4/groups/jastadd/-/packages/maven"
+  }
 }
 
 java {
diff --git a/eraser-base/build.gradle b/eraser-base/build.gradle
index 56c7cb705e9708e92609f6187a887005a09eeafc..63dc1cf62d41dbb534eb12133e494ac66379656d 100644
--- a/eraser-base/build.gradle
+++ b/eraser-base/build.gradle
@@ -11,10 +11,10 @@ plugins {
     id 'eraser.java-jastadd-conventions'
 }
 
-apply plugin: 'jastadd'
-
 dependencies {
     jastadd2 "org.jastadd:jastadd:2.3.4"
+    compileOnly group: 'de.tudresden.inf.st.jastadd', name: 'coverage-generator', version: '0.0.4'
+
     api group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jackson_version}"
     api group: 'org.fusesource.mqtt-client', name: 'mqtt-client', version: '1.16'
     implementation group: 'org.influxdb', name: 'influxdb-java', version: '2.20'
@@ -49,6 +49,18 @@ task preprocess(type: JavaExec) {
             file("./src/gen/jastadd/mainGen.jadd"))
 }
 
+String[] coverageGenArguments = [
+    '--List=JastAddList',
+    '--printYaml',
+    '--outputBaseDir=src/gen/jastadd'
+]
+task generateCoverage(type: JavaExec) {
+    main = 'org.jastadd.preprocessor.coverage_gen.Main'
+    classpath = configurations.compileOnly
+
+    args coverageGenArguments + relastFiles
+}
+
 jastadd {
     configureModuleBuild()
     modules {
@@ -104,6 +116,7 @@ sourceSets.main {
 }
 
 generateAst.dependsOn preprocess
+generateAst.dependsOn generateCoverage
 generateAst.inputs.files file("./src/main/jastadd/mainGen.ast"), file("./src/main/jastadd/mainGen.jadd")
 //compileJava.dependsOn jastadd
 //
diff --git a/eraser-base/src/test/java/de/tudresden/inf/st/eraser/GenerateCoverageTest.java b/eraser-base/src/test/java/de/tudresden/inf/st/eraser/GenerateCoverageTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..97d76d18d88847ac76c13a62e53cb24fac1f0c50
--- /dev/null
+++ b/eraser-base/src/test/java/de/tudresden/inf/st/eraser/GenerateCoverageTest.java
@@ -0,0 +1,12 @@
+package de.tudresden.inf.st.eraser;
+
+import de.tudresden.inf.st.eraser.jastadd.model.ASTNode;
+import org.junit.jupiter.api.Test;
+
+public class GenerateCoverageTest {
+
+  @Test
+  public void testGeneratedCoverage() {
+    ASTNode.runCoverageAll();
+  }
+}