diff --git a/Jenkinsfile b/Jenkinsfile
index 48f4642c871ae0bd493937a7e1e1c9097e161f7e..6de18ee0a22c54f6b36c153a2952f19e190b03ad 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -42,34 +42,51 @@ pipeline {
                 }
             }
         }
-        
-        stage('Build BayernIdProxy') {
+
+        stage('Set Version') {
+          when {
+            not {
+                anyOf {
+                    branch 'main'
+                    branch 'release'
+                }
+            }
+          }
           steps {
                 script {
                     FAILED_STAGE=env.STAGE_NAME
+                    JAR_TAG = generateBranchPRJarTag('pom.xml')
+                }
+                configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
+                    sh "mvn -s $MAVEN_SETTINGS versions:set -DnewVersion=${JAR_TAG} -DprocessAllModules=true"
+                    
                 }
+          }
+        }   
 
+        stage('Build BayernIdProxy') {
+          steps {
+                script {
+                    FAILED_STAGE=env.STAGE_NAME
+                }
                 configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
                     sh 'mvn --no-transfer-progress -s $MAVEN_SETTINGS clean install -Dmaven.wagon.http.retryHandler.count=3 -DelasticTests.disabled=true'
+                    
                 }
             }
         }
         
         stage('Deploy to Nexus'){
-            when {
-                anyOf {
-                    branch 'main'
-                    branch 'release'
-                }
-            }
             steps {
                 script {
                     FAILED_STAGE = env.STAGE_NAME
                 }
                 configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
                     sh 'mvn --no-transfer-progress -s $MAVEN_SETTINGS -DskipTests deploy -Dmaven.wagon.http.retryHandler.count=3'
+                    sh "mvn -s $MAVEN_SETTINGS versions:revert"
                 }
-            }
+               
+            }       
         }
 
         stage('Build Docker image nachrichten-bayernid-proxy') {
@@ -109,6 +126,7 @@ pipeline {
             steps {
                 script {
                     FAILED_STAGE=env.STAGE_NAME
+
                     HELM_CHART_VERSION_BAYERN_ID_PROXY = generateHelmChartVersion("pom.xml")
 
                     sh "./run_helm_test.sh"
@@ -271,6 +289,12 @@ String generateImageTag(String pomFile) {
     return imageTag
 }
 
+String generateBranchPRJarTag(String pomFile) {
+    def jarTag = getPomVersion(pomFile).replace("SNAPSHOT", "${env.BRANCH_NAME}-SNAPSHOT")
+
+    return jarTag
+}
+
 Void configureGit() {
     final email = "jenkins@ozg-sh.de"
     final name = "jenkins"