code: public static void writeSrcJar(
        SoyFileSetNode soyFileSet, ImmutableMap<String, SoyFileSupplier> files, ByteSink sink)
        throws IOException {
      try (SoyJarFileWriter writer = new SoyJarFileWriter(sink.openStream())) {
        for (SoyFileNode file : soyFileSet.getChildren()) {
          String namespace = file.getNamespace();
          String fileName = file.getFileName();
          writer.writeEntry(
              Names.javaFileName(namespace, fileName),
              files.get(file.getFilePath()).asCharSource().asByteSource(UTF_8));
        }
      }
    }
docs: Writes the source files out to a {@code -src.jar}. This places the soy files at the same
  classpath relative location as their generated classes. Ultimately this can be used by
  debuggers for source level debugging.
  
  <p>It is a little weird that the relative locations of the generated classes are not identical
  to the input source files. This is due to the disconnect between java packages and soy
  namespaces. We should consider using the soy namespace directly as a java package in the
  future.
  
  @param registry All the templates in the current compilation unit
  @param files The source files by file path
  @param sink The source to write the jar file