diff --git a/.docs/contributing.md b/.docs/contributing.md
index 259fcae55b1c3cd91ab9e55ce346db3953709876..d77c6b49480d5a92adc5ef013757e06a68a4218a 100644
--- a/.docs/contributing.md
+++ b/.docs/contributing.md
@@ -38,11 +38,9 @@ The Java-based services have the coverage reports generated by `JaCoCo` in the `
 Python-based services have the coverage reports generated by `coverage` in the `.coverage` SQLite3 database
 and `coverage.txt` log file respectively.
 
-### Swagger Docs
-
-```shell
-bash .swagger/swagger-generate.sh
-```
+We run SonarQube quality checks on the `master` branch regularly to ensure security, maintainability and remove code
+smells. The internal instance can be found at [http://57.153.70.97:9000](http://57.153.70.97:9000)
+(requires internal authentication).
 
 ## Code Versioning
 
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3551a6007a328dfeadfc271321ace16e2c51f89b..45002624943c269683a18270d8376aa5765fa58f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -272,18 +272,24 @@ test-lib:
       junit: ./lib/python/report.xml
   coverage: '/TOTAL.*?([0-9]{1,3})%/'
 
-scan-check:
+scan-java:
   stage: scan
-  image: docker.io/sonarsource/sonar-scanner-cli:10.0
-  dependencies:
-    - build-metadata-service
-    - build-data-service
-  variables:
-    SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar"
-    GIT_DEPTH: "0"
+  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:
+  stage: scan
+  image: sonarsource/sonar-scanner-cli:10.0
   script:
-    - 'sonar-scanner -Dsonar.token="${CI_SONAR_TOKEN}"'
-  allow_failure: true
+    - 'sonar-scanner -Dsonar.projectKey=DBREPO -Dsonar.host.url=${CI_SONAR_URL} -Dsonar.token="${CI_SONAR_TOKEN}" -Dsonar.exclusions=./dbrepo-metadata-service/**,./dbrepo-data-service/**'
   cache:
     policy: pull
     key: "${CI_COMMIT_SHORT_SHA}"
diff --git a/sonar-project.properties b/sonar-project.properties
deleted file mode 100644
index 77c810f71bc0beba8192e97eeec8283752d6f3aa..0000000000000000000000000000000000000000
--- a/sonar-project.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-sonar.projectKey=DBREPO
-sonar.host.url=http://57.153.70.97:9000
-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
\ No newline at end of file