code: public ZipBuilder addFile(File sourceFile, String targetFile) throws IOException {
          FileInputStream fis = new FileInputStream(sourceFile);
          ZipEntry jarEntry = new ZipEntry(targetFile);
          jarOutputStream.putNextEntry(jarEntry);
          StreamUtils.copyStream(fis, jarOutputStream, false);
          fis.close();
          return this;
      }
docs: Adds a file to the archive. The archive must not be closed.
  <p>
  Example:<br>
  
  <pre>
  sourceFile = C:\opt\work\deps\foo.jar
  targetDir = WEB-INF/lib/foo.jar
  
  </pre>
  
  @param sourceFile
  File to be added
  @param targetFile
  Relative path for the file within the archive. Regardless of the OS, this path
  must use slashes ('/') as separators.
  
  @return this for fluent syntax
  @throws IOException
  on I/O error