diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 338b09cc95e2141301e2b016f330f0abca1daf3e..4d8680ebc6a78a16421755138ec2e941a5a1947d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,8 @@
 build:
   stage: build
   image: openjdk:8-jdk-slim
+  variables:
+    GRADLE_USER_HOME: "$CI_PROJECT_DIR/.gradle"
   before_script:
     - export DEBIAN_FRONTEND="noninteractive"
     - apt-get update
@@ -10,7 +12,13 @@ build:
     - ./gradlew createPoms
     - ./gradlew downloadCli
     - ./gradlew collectDependencies
-    - mvn -f de.prob.parent/pom.xml install
+    - mvn -Dmaven.repo.local="$CI_PROJECT_DIR/maven_repo_local" -f de.prob.parent/pom.xml install
+  cache:
+    paths:
+      - .gradle/caches
+      - .gradle/native
+      - .gradle/wrapper
+      - maven_repo_local
   artifacts:
     paths:
       - de.prob.repository/target/repository