Да, я успешно развернул развертывание, используя инструкции по Java здесь:
http://devcenter.heroku.com/articles/java
Я использую проект Maven с подходом плагина appassembler, но добавил gwt-maven-plugin для компиляции приложения GWT во время сборки.
Когда вы нажимаете на heroku, вы видите, что процесс компиляции GWT запущен только в одном потоке, но очень медленно, но работает нормально.
Встроенный экземпляр Jetty настроен для обслуживания статических ресурсов в / static из src / main / resources / static, и я копирую скомпилированное приложение GWT в это место во время сборки, а затем ссылаюсь на .nocache.js как обычно.
Что еще ты хочешь знать?
У вас есть выбор: либо встроить Javascript-представление вашего приложения GWT локально в ваш проект Maven, зафиксировать его и прочитать его из вашего приложения, либо сгенерировать его внутри Heroku с помощью gwt-maven-plugin, как я упоминается.
Код для обслуживания файлов из статического места внутри вашего фляги через встроенный Jetty - что-то вроде этого внутри Guice ServletModule:
(См. Мой другой ответ ниже для более простого и менее ориентированного на Guice способа сделать это.)
protected void configureServlets() {
bind(DefaultServlet.class).in(Singleton.class);
Map<String, String> initParams = new HashMap<String, String>();
initParams.put("pathInfoOnly", "true");
initParams.put("resourceBase", staticResourceBase());
serve("/static/*").with(DefaultServlet.class, initParams);
}
private String staticResourceBase() {
try {
return WebServletModule.class.getResource("/static").toURI().toString();
}
catch (URISyntaxException e) {
e.printStackTrace();
return "couldn't resolve real path to static/";
}
}
Есть несколько других приемов, чтобы встроенная Jetty работала с guice-сервлетом, дайте мне знать, если этого недостаточно.