如何在本地运行DropWizard / Jersey服务器而无需重新启动&重新包装以获取资产文件更新?

时间:2014-01-08 19:23:47

标签: java eclipse maven jersey dropwizard

我正在使用DropWizard的项目的客户端工作。不幸的是,我所遇到的是,我需要更改资产,我必须停止服务器,使用maven打包资产,然后重新运行服务器,否则资产将不会更新。

我尝试添加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这个世界的无知。

2 个答案:

答案 0 :(得分:4)

在我的Intellij Idea中,我正在使用JRebel插件来实现此目的。 JRebel也支持Eclipse。

答案 1 :(得分:1)

如果您的资产打包在src/main/resources下,那么只要您在IDE中运行可执行服务main(),它们就应该只使用Eclipse自动更新而无需重新启动。

您可能需要检查您的Maven插件是否在更改时设置为“generate-resources”,但这只是默认设置,因此应该已经到位。

您所描述的内容在Eclipse中肯定是可能的 - 我具有进行资源更改的个人经验(例如,更改和保存HTML资产),然后只需浏览器刷新即可立即看到更新。