code: private void loadCoreGobblinJarsToDistributedJars() {
      // Gobblin-api
      distributeJarByClassWithPriority(State.class, 0);
      // Gobblin-core
      distributeJarByClassWithPriority(ConstructState.class, 0);
      // Gobblin-core-base
      distributeJarByClassWithPriority(InstrumentedExtractorBase.class, 0);
      // Gobblin-metrics-base
      distributeJarByClassWithPriority(MetricContext.class, 0);
      // Gobblin-metrics
      distributeJarByClassWithPriority(GobblinMetrics.class, 0);
      // Gobblin-metastore
      distributeJarByClassWithPriority(FsStateStore.class, 0);
      // Gobblin-runtime
      distributeJarByClassWithPriority(Task.class, 0);
      // Gobblin-utility
      distributeJarByClassWithPriority(PathUtils.class, 0);
      // joda-time
      distributeJarByClassWithPriority(ReadableInstant.class, 0);
      // guava
      distributeJarByClassWithPriority(Escaper.class, -10); // Escaper was added in guava 15, so we use it to identify correct jar
      // dropwizard.metrics-core
      distributeJarByClassWithPriority(MetricFilter.class, 0);
      // pegasus
      distributeJarByClassWithPriority(DataTemplate.class, 0);
      // commons-lang3
      distributeJarByClassWithPriority(ClassUtils.class, 0);
      // avro
      distributeJarByClassWithPriority(SchemaBuilder.class, 0);
      // guava-retry
      distributeJarByClassWithPriority(RetryListener.class, 0);
      // config
      distributeJarByClassWithPriority(ConfigFactory.class, 0);
      // reflections
      distributeJarByClassWithPriority(Reflections.class, 0);
      // javassist
      distributeJarByClassWithPriority(ClassFile.class, 0);
    }
docs: This returns the set of jars required by a basic Gobblin ingestion job. In general, these need to be distributed
  to workers in a distributed environment.