如何使用 maven jetty 插件 (7.x) 提供静态内容
谢谢
将您的静态内容放在下面的任何文件夹下/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
我没有测试/使用过上述内容。但让我知道,如果你得到这个工作。或者如果需要其他任何事情来完成这项工作。
我的 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>
这是一个对我有用的配置,使用 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>