从jar文件提供静态文件

时间:2015-03-08 02:40:34

标签: java maven packaging grizzly

我使用 StaticHttpHandler从绝对路径提供静态文件:

httpServer.getServerConfiguration().addHttpHandler(new StaticHttpHandler("/home/user/.../project/src/main/resources/static));

如何打包并提供mvn assembly:single生成的最终胖jar中的静态文件?

我的pom.xml文件的部分看起来像

<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>*</include>                    
                </includes>
            </resource>             
        </resources>
</build>

2 个答案:

答案 0 :(得分:1)

给定的配置

<build>
  <resources>
     <resource>
        <directory>src/main/resources</directory>
        <includes>
           <include>*</include>                    
        </includes>
     </resource>             
  </resources>
</build>

不是必要的,因为它是默认的。

此外,为了获得位于那里的资源,很高兴知道它们将被打包到相应的jar中,可通过

访问
this.getClass().getResourceAsStream("/TheThingYoulikeToAccess.jpg"));

这定义了一个在给定jar文件中的资源。

答案 1 :(得分:0)

您可以使用CLStaticHttpHandler从jar文件提供静态文件,如:

server.getServerConfiguration().addHttpHandler(
        new CLStaticHttpHandler(new URLClassLoader(new URL[] {
            new File("/home/myname/myjarfile.jar").toURI().toURL()}),  // Path to the jar file
            "my/jar/staticfiles-insider-jar/"), // the static files path inside the jar file
            "/jarstatic"); // context-path