diff --git a/.gitignore b/.gitignore
index 9d1113344d54973e9d6b249c9c61bd3b3ce26c43..78aba4bb88ae15cc77fd1bb1b454f37c145e3839 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,4 +6,3 @@
 .idea/
 .gradle/
 build/
-/gradle.properties
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2d2bba1c31fb3261fe3bbb7d30739d039976d48a..fb3a5ccb5f43a8339f349324f764d3648b58f1e7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,7 +4,6 @@ variables:
 stages:
 - build
 - publish
-- deploy
 
 before_script:
   - export GRADLE_USER_HOME=`pwd`/.gradle
@@ -33,7 +32,7 @@ publish:
 
 pages:
   image: python:3.7-alpine
-  stage: deploy
+  stage: publish
   script:
   - pip install -U sphinx sphinx-rtd-theme recommonmark sphinxemoji sphinx-markdown-tables
   - sphinx-build -b html pages/ public
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000000000000000000000000000000000000..036899c6241c9aefbd7613611ceb35349d9d6624
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,2 @@
+log4j_version = 2.14.0
+mustache_java_version = 0.9.7
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 94336fcae912db8a11d55634156fa011f4686124..5c2d1cf016b3885f6930543d57b744ea8c220a1a 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 5028f28f8e4755a78a5bf0fef4644577b199c8c4..4d9ca1649142b0c20144adce78e2472e2da01c30 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index cccdd3d517fc5249beaefa600691cf150f2fa3e6..83f2acfdc319a24e8766cca78f32474ad7a22dd6 100755
--- a/gradlew
+++ b/gradlew
@@ -1,5 +1,21 @@
 #!/usr/bin/env sh
 
+#
+# Copyright 2015 the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
 ##############################################################################
 ##
 ##  Gradle start up script for UN*X
@@ -28,7 +44,7 @@ APP_NAME="Gradle"
 APP_BASE_NAME=`basename "$0"`
 
 # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
 
 # Use the maximum available, or set MAX_FD != -1 to use that value.
 MAX_FD="maximum"
@@ -109,8 +125,8 @@ if $darwin; then
     GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
 fi
 
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
     APP_HOME=`cygpath --path --mixed "$APP_HOME"`
     CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
     JAVACMD=`cygpath --unix "$JAVACMD"`
diff --git a/gradlew.bat b/gradlew.bat
index f9553162f122c71b34635112e717c3e733b5b212..9618d8d9607cd91a0efb866bcac4810064ba6fac 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -1,3 +1,19 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem      https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
 @if "%DEBUG%" == "" @echo off
 @rem ##########################################################################
 @rem
@@ -14,7 +30,7 @@ set APP_BASE_NAME=%~n0
 set APP_HOME=%DIRNAME%
 
 @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
 
 @rem Find java.exe
 if defined JAVA_HOME goto findJavaFromJavaHome
diff --git a/ragconnect.base/build.gradle b/ragconnect.base/build.gradle
index 8c8f9b56d8f05be8595e9cd9012f2a27811eb70c..5e95789763190f9f2dac3abe7c9b59c0de28ff59 100644
--- a/ragconnect.base/build.gradle
+++ b/ragconnect.base/build.gradle
@@ -1,14 +1,23 @@
-apply plugin: 'java-library'
-apply plugin: 'idea'
+buildscript {
+    repositories.mavenCentral()
+    dependencies {
+        classpath 'org.jastadd:jastaddgradle:1.13.3'
+    }
+}
+
+plugins {
+    id 'java'
+    id 'java-library'
+    id 'idea'
+    id 'com.github.ben-manes.versions' version '0.36.0'
+    id 'maven-publish'
+    id 'application'
+}
+
 apply plugin: 'jastadd'
-apply plugin: 'application'
-apply plugin: 'maven-publish'
 
 group = 'de.tudresden.inf.st'
 
-sourceCompatibility = 1.8
-targetCompatibility = 1.8
-
 mainClassName = 'org.jastadd.ragconnect.compiler.Compiler'
 
 repositories {
@@ -16,20 +25,13 @@ repositories {
     jcenter()
 }
 
-buildscript {
-    repositories.jcenter()
-    dependencies {
-        classpath 'org.jastadd:jastaddgradle:1.13.3'
-    }
-}
-
 dependencies {
     implementation project(':relast-preprocessor')
-    implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.11.2'
-    implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.11.2'
-    implementation group: 'org.apache.logging.log4j', name: 'log4j-jul', version: '2.11.2'
-    implementation group: 'com.github.spullara.mustache.java', name: 'compiler', version: '0.9.6'
-    runtime group: 'org.jastadd', name: 'jastadd', version: '2.3.4'
+    implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: "${log4j_version}"
+    implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: "${log4j_version}"
+    implementation group: 'org.apache.logging.log4j', name: 'log4j-jul', version: "${log4j_version}"
+    implementation group: 'com.github.spullara.mustache.java', name: 'compiler', version: "${mustache_java_version}"
+    runtimeOnly group: 'org.jastadd', name: 'jastadd', version: '2.3.4'
     api group: 'net.sf.beaver', name: 'beaver-rt', version: '0.9.11'
 }