title: How to change a Jenkins Declarative Pipeline environment variable?
body: <p>I'm trying to create some Docker images. For that I want to use the version number specified in the Maven pom.xml file as tag. I am however rather new to the declarative Jenkins pipelines and I can't figure out how to change my environment variable so that VERSION contains the right version for all stages. </p>
  
  <p>This is my code</p>
  
  <pre class="lang-groovy prettyprint-override"><code>#!groovy
  
  pipeline {
      tools { 
          maven 'maven 3.3.9' 
          jdk 'Java 1.8' 
      }
      environment {
          VERSION = '0.0.0'
      }
  
      agent any 
  
      stages {
          stage('Checkout') { 
              steps {
                  git branch: 'master', credentialsId: '290dd8ee-2381-4c5b-8d33-5631d03ee7be', url: 'git@gitlab.crosslang.local:company/SOME-API.git'
                  sh "git clean -f &amp;&amp; git reset --hard origin/master"
              }
          }
          stage('Build and Test Java code') {
              steps {
                  script {
                      def pom = readMavenPom file: 'pom.xml'
                      VERSION = pom.version
                  }
                  echo "${VERSION}"
                  sh "mvn clean install -DskipTests"
              }
          }
          stage('Build Docker images') {
              steps {
                  dir('whales-microservice/src/main/docker'){
                      sh 'cp ../../../target/whales-microservice-${VERSION}.jar whales-microservice.jar'
                      script {
                          docker.build "company/whales-microservice:${VERSION}"
                      }
                  }
              }
          }
      }
  }
  </code></pre>