diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 20622ead2e7623b847b57d8ac4f89594e6e14af1..111d2efb342b8d5f149b4e033a6bfe58ee936d71 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -273,24 +273,14 @@ test-lib:
       junit: ./lib/python/report.xml
   coverage: '/TOTAL.*?([0-9]{1,3})%/'
 
-scan-java:
-  stage: scan
-  image: maven:3-openjdk-17
-  script:
-    - "mvn -f ./dbrepo-metadata-service/pom.xml clean install -DskipTests"
-    - "mvn -f ./dbrepo-metadata-service/pom.xml clean verify sonar:sonar -Dsonar.projectKey=DBREPO -Dsonar.host.url=${CI_SONAR_URL} -Dsonar.token=${CI_SONAR_TOKEN} -DskipTests"
-    - "mvn -f ./dbrepo-data-service/pom.xml clean verify sonar:sonar -Dsonar.projectKey=DBREPO -Dsonar.host.url=${CI_SONAR_URL} -Dsonar.token=${CI_SONAR_TOKEN} -DskipTests"
-  cache:
-    policy: pull
-    key: "${CI_COMMIT_SHORT_SHA}"
-    paths:
-      - sonar-scanner/
-
-scan-other:
+scan-sonarqube:
   stage: scan
   image: sonarsource/sonar-scanner-cli:10.0
+  dependencies:
+    - test-data-service
+    - test-metadata-service
   script:
-    - 'sonar-scanner -Dsonar.host.url="${CI_SONAR_URL}" -Dsonar.token="${CI_SONAR_TOKEN}" -Dsonar.projectKey=DBREPO -Dsonar.java.file.suffixes=.foo -Dsonar.python.version="${PYTHON_VERSION}"'
+    - 'sonar-scanner -Dsonar.token="${CI_SONAR_TOKEN}"'
   cache:
     policy: pull
     key: "${CI_COMMIT_SHORT_SHA}"
diff --git a/sonar-project.properties b/sonar-project.properties
new file mode 100644
index 0000000000000000000000000000000000000000..3f91e17ad3107ecdcc4cbf381b96ce8782c97e7a
--- /dev/null
+++ b/sonar-project.properties
@@ -0,0 +1,14 @@
+# sonarqube
+sonar.projectKey=fair-data-austria-db-repository_fda-services_d2c9835a-dab9-4600-9255-ec7d50358811
+sonar.host.url=http://57.153.70.97:9000
+# project
+sonar.projectVersion=1.4.4
+# general
+sonar.qualitygate.wait=true
+# java services
+sonar.sources=./dbrepo-metadata-service/test/src/main,./dbrepo-metadata-service/services/src/main,./dbrepo-metadata-service/repositories/src/main,./dbrepo-metadata-service/rest-service/src/main,./dbrepo-metadata-service/api/src/main,./dbrepo-metadata-service/oai/src/main,./dbrepo-metadata-service/entities/src/main,./dbrepo-data-service/services/src/main,./dbrepo-data-service/rest-service/src/main,./dbrepo-data-service/querystore/src/main
+sonar.java.binaries=./dbrepo-metadata-service/test/target/classes,./dbrepo-metadata-service/services/target/classes,./dbrepo-metadata-service/repositories/target/classes,./dbrepo-metadata-service/rest-service/target/classes,./dbrepo-metadata-service/api/target/classes,./dbrepo-metadata-service/oai/target/classes,./dbrepo-metadata-service/entities/target/classes,./dbrepo-data-service/services/target/classes,./dbrepo-data-service/rest-service/target/classes,./dbrepo-data-service/querystore/target/classes
+sonar.junit.reportPaths=./dbrepo-metadata-service/rest-service/target/surefire-reports,./dbrepo-data-service/rest-service/target/surefire-reports
+sonar.coverage.jacoco.xmlReportPaths=./dbrepo-metadata-service/report/target/site/jacoco-aggregate/jacoco.xml,./dbrepo-data-service/report/target/site/jacoco-aggregate/jacoco.xml
+# python services
+sonar.python.version=3.11
\ No newline at end of file