4

如何使用 maven jetty 插件 (7.x) 提供静态内容

谢谢

4

3 回答 3

3

将您的静态内容放在下面的任何文件夹下/yourStaticApp/src/main/webapp- 比如在/yourStaticApp/src/main/webapp/static. 当您运行 Jetty 时,这些将作为http://host:port/contextRoot/static/fileName.ext


嗯,不确定,如果可能的话。Eclipse Jetty Maven 插件记录了一种配置静态源位置的方法,归结为webapps上面提到的备用位置。

 ...
 <plugin>
    ...
    <configuration>
      <webAppSourceDirectory>${basedir}/src/staticfiles</webAppSourceDirectory>
      ...
    </configuration>
    ...
  </plugin>
  ...

正如文档指出的那样:

<webAppSourceDirectory> – 默认设置为 ${basedir}/src/main/webapp。如果您的静态源位于不同的位置,请相应地设置此参数。

参考:http ://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin


更新:在更多研究中,我发现您实际上可以webdefault.xml在 Jetty-maven 插件中指出 from 的位置;在 webdefault.xml 中,您可以配置静态内容位置。

在您的 Jetty Maven 配置中,指向 wendefault.xml 的位置

  <plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>maven-jetty-plugin</artifactId>
    <configuration>
     ...
      <defaultsDescriptor>/my/path/to/webdefault.xml</defaultsDescriptor>
     ...
    </configuration>
  </plugin>

现在,webdefault.xml您可以将这里提到的配置放在手中:http: //docs.codehaus.org/display/JETTY/Static+Content -- 除了包名称已更改org.mortbay.jetty...org.eclipse.jetty...如下所示:

<Configure class="org.eclipse.jetty.servlet.Context">
  <Set name="contextPath">/javadoc</Set>
  <Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>/javadoc/</Set>
  <Call name="addServlet">
    <Arg>org.eclipse.jetty.servlet.DefaultServlet</Arg>
    <Arg>/</Arg>
  </Call>
</Configure>

参考:http ://wiki.eclipse.org/Jetty/Reference/webdefault.xml

我没有测试/使用过上述内容。但让我知道,如果你得到这个工作。或者如果需要其他任何事情来完成这项工作。

于 2011-02-21T18:12:15.017 回答
1

我的 jetty.xml 中有这样的配置。我只是想更新我的问题。

 <Set name="handler">
     <New class="org.eclipse.jetty.server.handler.HandlerList">
        <Set name="handlers">
           <Array type="org.eclipse.jetty.server.Handler">
              <Item>
                 <New class="org.eclipse.jetty.servlet.ServletContextHandler">
                    <Set name="contextPath">/static</Set>
                    <Set name="resourceBase">${static-resources-path}</Set>
                    <Call name="addServlet">
                       <Arg>org.eclipse.jetty.servlet.DefaultServlet</Arg>
                       <Arg>/</Arg>
                    </Call>
                 </New>
              </Item>
           </Array>
        </Set>
     </New>
  </Set>
于 2011-08-16T12:59:23.277 回答
0

这是一个对我有用的配置,使用 JettyWebAppContext 上的 resourceBase 和 contextPath 值

<plugin>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>9.4.7.v20170914</version>
    <configuration>
        <scanIntervalSeconds>60</scanIntervalSeconds>
        <webApp>
            <contextPath>/app</contextPath>
        </webApp>
        <contextHandlers>
            <contextHandler implementation="org.eclipse.jetty.maven.plugin.JettyWebAppContext">
                <contextPath>/images</contextPath>
                <resourceBase>./../../env/localhost/config/images</resourceBase>
            </contextHandler>
        </contextHandlers>
于 2019-02-08T16:06:47.413 回答