diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index edbc9719340957a185bba1acb4476ee79860d612..26838309f0e875ff1c7fe30ffdfbdc58b71414ad 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -22,6 +22,11 @@ stages:
   - test
   - publish
 
+.get-version:
+  before_script:
+    - export PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout $MAVEN_CLI_OPTS | cut -d'-' -f1)
+    - export PROJECT_ARTIFACTID=$(mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout $MAVEN_CLI_OPTS)
+
 build:
   stage: build
   script:
@@ -40,6 +45,17 @@ verify:
   script:
     - mvn verify $MAVEN_CLI_OPTS
 
+push-merge-request-snapshot-nexus:
+  stage: publish
+  before_script:
+    - !reference [ .get-version, before_script ]
+  script:
+    - mvn versions:set -DnewVersion=${PROJECT_VERSION}-MR-${CI_MERGE_REQUEST_IID}-SNAPSHOT $MAVEN_CLI_OPTS
+    - mvn deploy -Pnexus-deploy $MAVEN_DEPLOY_CLI_OPTS $MAVEN_CLI_OPTS
+  rules:
+    - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
+      when: manual
+
 snapshot-gitlab:
   stage: publish
   script:
diff --git a/pom.xml b/pom.xml
index af754f85728d3de7a6f9cdb6678101393735acb7..30826677b18f627acd25f52f1f3e19dd822e25d3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,7 +41,7 @@
 	<description>Semantik-Adapter für AFM/IntelliForm</description>
 
 	<properties>
-		<eingang-manager.version>2.20.0</eingang-manager.version>
+		<eingang-manager.version>2.21.0-develop-SNAPSHOT</eingang-manager.version>
 	</properties>
 
 	<dependencies>
diff --git a/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapterTest.java b/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapterTest.java
index 2763d9fa1198e0b884a88afcf9350408a4e9bfbf..2bc6e64762e8e2b6c2c7380b6e23fbba47e0bd95 100644
--- a/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapterTest.java
+++ b/src/test/java/de/ozgcloud/eingang/semantik/enginebased/afm/AfmEngineBasedAdapterTest.java
@@ -79,57 +79,55 @@ class AfmEngineBasedAdapterTest {
 		@Nested
 		class TestWithoutException {
 
+			@BeforeEach
+			void mock() {
+				ReflectionTestUtils.setField(adapter, "mappers", List.of(mapper0, mapper1));
 
+				when(intelliFormRepresentationAdapters.adaptByRepresentations(any())).thenReturn(formData1);
+				when(mapper0.parseFormData(any())).thenReturn(formData2);
+				when(mapper1.parseFormData(any())).thenReturn(formData3);
+				doReturn(formData4).when(adapter).removeProcessedData(any());
+			}
 
-		@BeforeEach
-		void mock() {
-			ReflectionTestUtils.setField(adapter, "mappers", List.of(mapper0, mapper1));
-
-			when(intelliFormRepresentationAdapters.adaptByRepresentations(any())).thenReturn(formData1);
-			when(mapper0.parseFormData(any())).thenReturn(formData2);
-			when(mapper1.parseFormData(any())).thenReturn(formData3);
-			doReturn(formData4).when(adapter).removeProcessedData(any());
-		}
-
-		@DisplayName("should call adaptByRepresentations")
-		@Test
-		void shouldCallAdaptByRepresentations() {
-			parseFormData();
+			@DisplayName("should call adaptByRepresentations")
+			@Test
+			void shouldCallAdaptByRepresentations() {
+				parseFormData();
 
-			verify(intelliFormRepresentationAdapters).adaptByRepresentations(formData0);
-		}
+				verify(intelliFormRepresentationAdapters).adaptByRepresentations(formData0);
+			}
 
-		@DisplayName("should call first mapper")
-		@Test
-		void shouldCallFirstMapper() {
-			parseFormData();
+			@DisplayName("should call first mapper")
+			@Test
+			void shouldCallFirstMapper() {
+				parseFormData();
 
-			verify(mapper0).parseFormData(formData1);
-		}
+				verify(mapper0).parseFormData(formData1);
+			}
 
-		@DisplayName("should call second mapper")
-		@Test
-		void shouldCallSecondMapper() {
-			parseFormData();
+			@DisplayName("should call second mapper")
+			@Test
+			void shouldCallSecondMapper() {
+				parseFormData();
 
-			verify(mapper1).parseFormData(formData2);
-		}
+				verify(mapper1).parseFormData(formData2);
+			}
 
-		@DisplayName("should call removeProcessedData")
-		@Test
-		void shouldCallRemoveProcessedData() {
-			parseFormData();
+			@DisplayName("should call removeProcessedData")
+			@Test
+			void shouldCallRemoveProcessedData() {
+				parseFormData();
 
-			verify(adapter).removeProcessedData(formData3);
-		}
+				verify(adapter).removeProcessedData(formData3);
+			}
 
-		@DisplayName("should return")
-		@Test
-		void shouldReturn() {
-			var result = parseFormData();
+			@DisplayName("should return")
+			@Test
+			void shouldReturn() {
+				var result = parseFormData();
 
-			assertThat(result).isEqualTo(formData4);
-		}
+				assertThat(result).isEqualTo(formData4);
+			}
 
 		}