title: NotSerializableException in jenkinsfile
body: <p>I'm working on a jenkinsfile and I'm getting and exception in the third stage:</p>
  
  <pre><code>an exception which occurred:
  in field com.cloudbees.groovy.cps.impl.BlockScopeEnv.locals
  in object com.cloudbees.groovy.cps.impl.BlockScopeEnv@7bbae4fb
  in field com.cloudbees.groovy.cps.impl.ProxyEnv.parent
  in object com.cloudbees.groovy.cps.impl.CaseEnv@6896a2e3
  in field com.cloudbees.groovy.cps.impl.ProxyEnv.parent
  in object com.cloudbees.groovy.cps.impl.BlockScopeEnv@605ccbbc
  in field com.cloudbees.groovy.cps.impl.CallEnv.caller
  in object com.cloudbees.groovy.cps.impl.FunctionCallEnv@7b8ef914
  in field com.cloudbees.groovy.cps.Continuable.e
  in object org.jenkinsci.plugins.workflow.cps.SandboxContinuable@11e73f3c
  in field org.jenkinsci.plugins.workflow.cps.CpsThread.program
  in object org.jenkinsci.plugins.workflow.cps.CpsThread@b2df9bb
  in field org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.threads
  in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@2b30596a
  in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@2b30596a
  Caused: java.io.NotSerializableException: java.util.regex.Matcher
      at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:860)
      at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65)
      at org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56)
  </code></pre>
  
  <p>I've been reading about it and I know I can't create non-serializable variables. So, I think it has to be with this part of my code:</p>
  
  <pre><code>def artifact_name = sh (
          script: "ls -b *.jar | head -1",
          returnStdout: true
  ).trim()
  def has_snapshot = artifact_name =~ /-TEST\.jar/
  if (has_snapshot) {
      //Do something
  }
  </code></pre>
  
  <p>My question is, how do I define that two variables in order to avoid that exception?</p>