introduce optional tmpWs
diff --git a/vars/asfMavenTlpStdBuild.groovy b/vars/asfMavenTlpStdBuild.groovy
index 2fd3354..e7e30be 100644
--- a/vars/asfMavenTlpStdBuild.groovy
+++ b/vars/asfMavenTlpStdBuild.groovy
@@ -36,6 +36,7 @@
     // minimum, LTS, current and next ea
     def jdks = params.containsKey('jdks') ? params.jdks : params.containsKey('jdk') ? params.jdk : ['7','8','11'] //['7','8','11','14','15']
     def maven = params.containsKey('maven') ? params.maven : '3.x.x'
+    def tmpWs = params.containsKey('tmpWs') ? params.tmpWs : false
     // def failFast = params.containsKey('failFast') ? params.failFast : true
     // Just temporarily
     def failFast = false;
@@ -75,68 +76,74 @@
         String stageId = "${os}-jdk${jdk}"
         tasks[stageId] = {
           node("${label}") {
-            stage("Checkout ${stageId}") {
-              echo "NODE_NAME = ${env.NODE_NAME}"
-              try {
-                dir('m') {
-                  checkout scm
-                }
-              } catch (Throwable e) {
-                // First step to keep the workspace clean and safe disk space
-                cleanWs()
-                if (!failFast) {
-                  throw e
-                } else if (failingFast == null) {
-                  failingFast = stageId
-                  echo "[FAIL FAST] This is the first failure and likely root cause"
-                  throw e
-                } else {
-                  echo "[FAIL FAST] ${failingFast} had first failure, ignoring ${e.message}"
-                }
-              } 
+            def wsDir = pwd()
+            if (os == 'windows' && tmpWs) {
+              wsDir = 'F:\\short\\' + "$BUILD_TAG".replaceAll(/(.+)_maven-box_maven-(.+)/) { "m-${it[2]}" }
             }
-            stage("Build ${stageId}") {
-              if (failingFast != null) {
-                cleanWs()
-                echo "[FAIL FAST] ${failingFast} has failed. Skipping ${stageId}."
-              } else try {
-                // mavenSettingsConfig: 'simple-deploy-settings-no-mirror',
-                withMaven(jdk:jdkName, maven:mvnName, mavenLocalRepo:'.repository', 
-                          options: [
-                            artifactsPublisher(disabled: disablePublishers),
-                            junitPublisher(ignoreAttachments: false),
-                            findbugsPublisher(disabled: disablePublishers),
-                            openTasksPublisher(disabled: disablePublishers),
-                            dependenciesFingerprintPublisher(disabled: disablePublishers),
-// DISABLED DUE TO INFRA-17514 invokerPublisher(),
-                            pipelineGraphPublisher(disabled: disablePublishers)
-                          ], publisherStrategy: 'EXPLICIT') {
-                dir ('m') {
-                    if (isUnix()) {
-                      sh cmd.join(' ')
-                    } else {
-                      bat cmd.join(' ')
+            ws( dir : "$wsDir" ) {
+              stage("Checkout ${stageId}") {
+                echo "NODE_NAME = ${env.NODE_NAME}"
+                try {
+                  dir('m') {
+                    checkout scm
+                  }
+                } catch (Throwable e) {
+                  // First step to keep the workspace clean and safe disk space
+                  cleanWs()
+                  if (!failFast) {
+                    throw e
+                  } else if (failingFast == null) {
+                    failingFast = stageId
+                    echo "[FAIL FAST] This is the first failure and likely root cause"
+                    throw e
+                  } else {
+                    echo "[FAIL FAST] ${failingFast} had first failure, ignoring ${e.message}"
+                  }
+                } 
+              }
+              stage("Build ${stageId}") {
+                if (failingFast != null) {
+                  cleanWs()
+                  echo "[FAIL FAST] ${failingFast} has failed. Skipping ${stageId}."
+                } else try {
+                  // mavenSettingsConfig: 'simple-deploy-settings-no-mirror',
+                  withMaven(jdk:jdkName, maven:mvnName, mavenLocalRepo:'.repository', 
+                            options: [
+                              artifactsPublisher(disabled: disablePublishers),
+                              junitPublisher(ignoreAttachments: false),
+                              findbugsPublisher(disabled: disablePublishers),
+                              openTasksPublisher(disabled: disablePublishers),
+                              dependenciesFingerprintPublisher(disabled: disablePublishers),
+    // DISAED DUE TO INFRA-17514 invokerPublisher(),
+                              pipelineGraphPublisher(disabled: disablePublishers)
+                            ], publisherStrategy: 'EXPLICIT') {
+                  dir ('m') {
+                      if (isUnix()) {
+                        sh cmd.join(' ')
+                      } else {
+                        bat cmd.join(' ')
+                      }
                     }
                   }
-                }
-              } catch (Throwable e) {
-                echo "[FAILURE-004] ${e}"
-                // First step to keep the workspace clean and safe disk space
-                cleanWs()
-                if (!failFast) {
-                  throw e
-                } else if (failingFast == null) {
-                  failingFast = stageId
-                  echo "[FAIL FAST] This is the first failure and likely root cause"
-                  throw e
-                } else {
-                  echo "[FAIL FAST] ${failingFast} had first failure, ignoring ${e.message}"
-                }
-              } finally {
-                try {
+                } catch (Throwable e) {
+                  echo "[FAILURE-004] ${e}"
+                  // First step to keep the workspace clean and safe disk space
                   cleanWs()
-                } catch(IOException e) {
-                  echo "Failed to clean up workspace: ${e}"
+                  if (!failFast) {
+                    throw e
+                  } else if (failingFast == null) {
+                    failingFast = stageId
+                    echo "[FAIL FAST] This is the first failure and likely root cause"
+                    throw e
+                  } else {
+                    echo "[FAIL FAST] ${failingFast} had first failure, ignoring ${e.message}"
+                  }
+                } finally {
+                  try {
+                    cleanWs()
+                  } catch(IOException e) {
+                    echo "Failed to clean up workspace: ${e}"
+                  }
                 }
               }
             }