I have a method in a shared library in my Jenkins pipeline. The idea is to use this library and upload files to a remote host. The library is imported in a singleton library.
import com.package.jobutil.UploadFile
def uploadFunc() {
 def uploader = new UploadFile(this)
 withCredentials ([usernamePassword(credentialsId: 'user', userNameVariable: 'username', passwordVariable:'password)]) {
  uploader.uploadArtifact("${username}", "${password}", file.txt, location)
 }
}
def call() {
 uploadFunc()
}
The class that is instantiated looks like this:
class UploadFile {
   def steps
   UploadFile (steps) {
     this.steps = steps
   }
   pulic uploadArtifct (String user, String password, String file, String location) {
   Process proc
   def cred = "${user}:${pass}"
   def cmd = ["curl", "-v", "-u", cred, "--upload-file", file, location]
   steps.println "CURL: ${cmd}"
   proc = cmd.execute()
  }
}
Even though I see the println line in the logs. I do not see the curl command being executed. 
Is there something I am missing that does not invoke the cmd.execute to work?
EDIT
When I use the curl directly in the library, it works. 
pulic uploadArtifct (String user, String password, String file, String 
  location) {
  def cred = "${user}:${password}"
  def cmd = "curl -v -u ${cred} --upload-file ${file} ${nexusLocation}/${file}"
  try {
  steps.sh cmd
  } catch (Exception e) {
    throw new RuntimeExceptipon("Cannot execute curl, exception: [${e.getClass().getName()} - '${e.getMessage()}']")
   }
  }
However, when trying to use the Process it does not work.
pulic uploadArtifct (String user, String password, String file, String 
  location) {
  def cred = "${user}:${password}"
  def cmd = ["curl", "-v", "-u", cred, "--upload-file", ${file}, ${location}]
  try {
   def sout = new StringBuffer(), serr = new StringBuffer()
   def proc = cmd.execute()
   proc.consumeProcessOutput(sout, serr)
   proc.waitForOrKill(1000)
   println sout
  } catch (Exception e) {
    throw new RuntimeExceptipon("Cannot execute curl, exception: [${e.getClass().getName()} - '${e.getMessage()}']")
   }
  }
The exception I get is:
java.lang.RuntimeException: Cannot execute curl, exception: [groovy.lang.MissingMethodException - 'No signature of method: java.lang.String.div() is applicable for argument types: (org.codehaus.groovy.runtime.GStringImpl) values: [file.txt]