Статический контент с плагином Maven Jetty
Как я могу обслуживать статический контент с помощью плагина maven jetty (7.x)
Спасибо
2 ответа
У меня есть такая конфигурация в моем 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>
Поместите ваше статическое содержимое в любую папку ниже /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>
...
Как указывает документ:
- по умолчанию это значение равно ${basedir}/src/main/webapp. Если ваши статические источники находятся в другом месте, установите этот параметр соответствующим образом.
см. http://wiki.eclipse.org/Jetty/Feature/Jetty_Maven_Plugin
Обновление: при некоторых других исследованиях я узнал, что вы можете указать местоположение webdefault.xml
из в Jetty-Maven плагин; а в 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
Я не проверял / использовал выше. Но дайте мне знать, если у вас все получится. Или если что-то еще нужно, чтобы сделать это.
Это конфигурация, которая работает для меня, используя значения resourceBase и contextPath в JettyWebAppContext
<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>