如何使用bazaarvoice dropwizard可配置资产包

时间:2013-09-10 15:25:27

标签: bundle dropwizard


大家好,

Can DropWizard serve assets from outside the jar file?我已经读过,可以使用dropwizard-configurable-assets-bundle(以后只有DCAB)来提供jar文件之外的静态文件。

但网上没有可用的例子。唯一一个,在他们的github页面对我来说不是很有帮助。

首先,有人说,我应该实现AssetsBundleConfiguration,但是没有提到我应该在哪里使用它。

接下来,在服务中我应该把这行: bootstrap.addBundle(new ConfiguredAssetsBundle(“/ assets /”,“/ dashboard /”)); 但不幸的是,它向我显示了一个错误,它不适用于该论点。

在第三部分中有一些yaml,但我不知道,它是由bundle产生的,还是我应该把它放在某个地方。

我注意到,这些路径与src / main / resources相关。是否还有选项如何访问其外的文件?

2 个答案:

答案 0 :(得分:1)

所以这些步骤与README.md

中描述的非常相似
  1. 您从依赖

    开始
    dependencies {
        compile 'com.bazaarvoice.dropwizard:dropwizard-configurable-assets-bundle:0.2.0-rc1'
    }
    
  2. AssetBundleConfiguration接口需要由标准配置文件实现。所以在我的情况下:

    public class BookRespositoryConfiguration extends Configuration 
                 implements AssetsBundleConfiguration {
        @Valid
        @NotNull
        @JsonProperty
        private final AssetsConfiguration assets = new AssetsConfiguration();
    
        @Override
        public AssetsConfiguration getAssetsConfiguration() {
            return assets;
        }
    }
    
  3. 此配置在您的应用程序类

    中引用
    public class BooksRepositoryApplication 
                 extends Application<BookRespositoryConfiguration> {
    
        @Override
        public void initialize(Bootstrap bootstrap) {
            bootstrap.addBundle(new ConfiguredAssetsBundle("/assets/", "/books/"));
        }
    
        @Override
        public void run(BookRespositoryConfiguration configuration, 
                        Environment environment) throws Exception {
            //...
         }
     }
    
  4. 最后配置。配置路径是相对于文档根目录的,因此在我的情况下,资产位于应用程序文件夹之外。

    assets:
        overrides:
            /books: ../book-repository
    
  5. 现在,在运行应用后,您可以轻松导航至http://localhost:8080/books/some-static-files.html

答案 1 :(得分:0)

查看官方dropwizard-bundles维护的最新dropwizard-configurable-assets-bundle。

https://github.com/dropwizard-bundles/dropwizard-configurable-assets-bundle