2014-01-08 5 views
1

Я работаю на стороне клиента проекта, который использует DropWizard. К сожалению, что я испытываю, так это то, что для меня, чтобы внести изменения в активы, я должен остановить сервер, упаковать активы с помощью maven, а затем повторно запустить сервер или активы не будут обновлены.Как запустить сервер DropWizard/Jersey локально без перезагрузки и переупаковки для получения обновлений файлов активов?

Я попытался добавить dropwizard-configurable-assets-bundle, но я все еще вижу то же поведение. Вот сервис после добавления:

Service.java

public void initialize(strap<ServiceConfiguration> strap) { 

    // Assets 
    strap.addBundle(new ConfiguredAssetsBundle(
      "/dashboard/app/", "/dashboard/", "index.html" 
    )); 

    // Redirect /dashboard to /dashboard/ 
    strap.addBundle(new RedirectBundle(ImmutableMap.<String, String>builder() 
      .put("/dashboard", "/dashboard/").build())); 
} 

Я в настоящее время работает mvn package && java -jar target/pack.jar server config.yml. Я попытался использовать Eclipse, но мне пришлось перезапустить его вручную, и он не переупаковывался для меня, так что это замедляло работу еще больше.

Весь этот процесс reaaaally замедляет меня, и я надеюсь, что это просто мое невежество миру, являющемуся Java.

ответ

1

Если ваши активы упакованы под src/main/resources, тогда они должны просто обновляться автоматически с помощью Eclipse без необходимости перезапуска, при условии, что вы запускаете исполняемый файл main() из среды IDE.

Возможно, вам потребуется проверить, что ваш плагин Maven установлен на «генерировать ресурсы» при изменениях, но это только значение по умолчанию, поэтому должно быть уже на месте.

То, что вы описываете, возможно в Eclipse - у меня есть личный опыт внесения изменений в ресурсах (например, изменение и сохранение ресурса HTML), а затем просмотр немедленного обновления при выполнении ничего, кроме обновления браузера.

4

В моей идее Intellij я использую для этой цели JRebel плагин. JRebel также поддерживает Eclipse.