public static void main(String[] args) throws Exception {
    DropshipModule module = new DropshipModule(args);
    LoggingModule logging = new LoggingModule();
    SettingsModule settingsModule = new SettingsModule();

    Logger logger = logging.provideLogger(module.provideDateFormat(), module.provideJvmName(), module.provideLoggerDestination());
    Settings settings = settingsModule.provideSettings(logger, module.provideArgs());
    ArtifactResolutionService artifactService = new ArtifactResolutionService(settings, module.provideArtifactResolutionBuilder(settings, logger));

    Dropship dropship = new Dropship(
      settings,
      artifactService,
      logger
    );

    try {
      dropship.run();
    } catch (DropshipRuntimeException e) {
      dropship.logger.warn(e.getMessage());
      System.exit(1);
    }
  }