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



我正在处理一个使用DropWizard的项目的客户端。不幸的是,我所经历的是,要对资产进行更改,我必须停止服务器,使用 maven 打包资产,然后重新运行服务器,否则资产将不会更新。

我尝试添加dropwizard可配置资产捆绑包,但我仍然看到相同的行为。这是添加后的服务:

服务.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,但我不得不手动重新启动它,它没有为我重新打包,所以它进一步减慢了速度。

整个过程确实让我放慢了速度,我希望这只是我对Java世界的无知。

在我的 Intellij Idea 中,我为此目的使用JRebel插件。JRebel也支持Eclipse。

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

您可能需要检查您的Maven插件是否在更改时设置为"生成资源",但这只是默认设置,因此应该已经到位。

你所描述的在 Eclipse 中绝对是可能的 - 我有进行资源更改(例如更改和保存 HTML 资产)的个人经验,然后在只执行浏览器刷新时看到即时更新。

最新更新