Как отключить разделение кода в GWT?

У нас очень большой проект GWT, который дает монолитное приложение размером около 2 Мб. Очевидный способ разбить его - использовать точки разделения. Например, наше приложение управляется меню, поэтому логика каждого действия меню может быть точкой разделения. Кроме того, код, который вызывает GWT RPC, также может быть точкой разделения. Таким образом, приложение 2Mb, вероятно, может быть разбито на 300-К стартовое приложение с остатком, загруженным при первом использовании.

GWT обрабатывает вызовы GWT.runAsync() как места, где JS можно разбить на более мелкие куски, которые загружаются асинхронно во время выполнения. например для установки точки разделения, где вызывается doSomething(), мы пишем ее следующим образом:

GWT.runAsync(new RunAsyncCallback() {
  public void onFailure(Throwable caught) {
    Window.alert("Oh dear could not load app");
  }

  public void onSuccess() {
    doSomething();
  }
});

Компилятор GWT увидит этот код и пометит его как кандидата для разделения и разложения кода на более мелкие фрагменты, которые будут загружены по мере их использования.

Проблема заключается в том, что если мы помещаем точки разделения в код, сборка буквально занимает 10-50 раз дольше. Я думаю, что код не очень эффективен при работе с проектом, содержащим очень большое количество классов. Таким образом, сборка в 2 минуты становится сборкой в ​​20-100 минут, что неприемлемо.

Итак, вопрос в том, как я могу поместить точки разделения в код, но не позволять компилятору расщепляться, если я его явно не попрошу? Я предполагаю, что изо дня в день развитие будет игнорировать точки разделения, но ночная или производственная сборка будет расколота.

Любые идеи?