diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7459c6bab814f6d9e510016cb01d0f731a2dafdc..ea867a0f1f98321756a02587d4ba6e30c47e6ad7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -20,11 +20,10 @@ build:
   image: openjdk:11
   stage: build
   script:
-    - ./gradlew --console=plain --no-daemon assemble
+    - ./gradlew --console=plain --no-daemon assemble jar
   artifacts:
     paths:
-      - "src/gen"
-    expire_in: 1 week
+      - build/libs/*.jar
 
 test:
   image: openjdk:11
diff --git a/build.gradle b/build.gradle
index 5c07b933914e19246bfb669d50c9762e6e299364..827082f9f31ec31b50656c0cf4cad7f4227c6da7 100644
--- a/build.gradle
+++ b/build.gradle
@@ -23,16 +23,26 @@ configurations {
     relast
 }
 
+def jastaddSources = objects.sourceDirectorySet("resources", "Resources1")
+jastaddSources.srcDir 'src/main'
+jastaddSources.include 'jastadd/**'
+
+def jastaddGenSources = objects.sourceDirectorySet("resources", "Resources2")
+jastaddGenSources.srcDir 'src/gen'
+jastaddGenSources.include 'jastadd/*.relast', 'jastadd/*.ecore.jadd'
+
 sourceSets {
     model {
         java {
             srcDir 'src/gen/java'
         }
     }
+
     main {
         compileClasspath += sourceSets.model.output
         resources {
-            srcDir 'src/main/jastadd'
+            source(jastaddSources)
+            source(jastaddGenSources)
         }
     }
     test {
@@ -41,6 +51,10 @@ sourceSets {
     }
 }
 
+jar {
+    includeEmptyDirs false
+}
+
 File genSrc = file('src/gen/java')
 idea.module.generatedSourceDirs += genSrc