Статический контент с плагином Maven Jetty - PullRequest
4 голосов
/ 21 февраля 2011

Как я могу обслуживать статический контент с помощью плагина maven jetty (7.x)

Спасибо

Ответы [ 3 ]

3 голосов
/ 21 февраля 2011

поместите ваше статическое содержимое в любую папку ниже /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

Я не проверял / не использовал выше. Но дай мне знать, если у тебя все получится. Или если что-то еще нужно, чтобы сделать это.

1 голос
/ 16 августа 2011

У меня есть такая конфигурация в моем 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>
0 голосов
/ 08 февраля 2019

Это конфигурация, которая работает для меня, используя значения 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>
...