Плагин Jetty Maven игнорирует пользовательский файл webdefault.xml - PullRequest
14 голосов
/ 14 февраля 2011

Я пытаюсь обойти общую проблему блокировки Jetty статических файлов в Windows с помощью метода установки useFileMappedBuffer в false в webdefault.xml. К сожалению, каждый раз, когда Jetty не забирает мой настроенный файл webdefault.xml.

Я использую Apache Maven 3.0.2. Я пытался использовать maven-jetty-plugin (v6.1.26) и jetty-maven-plugin (v8.0.0.M2) , но без разницы. Я пробовал чистить и перестраивать до запуска Jetty.

Я каждый раз проверял, что мой файл webdefault.xml был взят из той же версии, что и плагин, и имеет правильные настройки, а именно, только изменяя этот параметр с true на false:

...
<init-param>
  <param-name>useFileMappedBuffer</param-name>
  <param-value>false</param-value>
</init-param>
...

А вот как выглядит мой плагин для pom.xml Jetty:

<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>maven-jetty-plugin</artifactId>
    <configuration>
        <contextPath>/</contextPath>
        <webDefaultXml>src/main/resources/webdefault.xml</webDefaultXml>
    </configuration>
</plugin>

Я также пытался изменить путь к своему файлу:

<webDefaultXml>${basedir}/src/main/resources/webdefault.xml</webDefaultXml>

Везде, где я видел это точное решение , и похоже, что оно работает для других (хотя я нашел один случай, когда у кого-то была моя проблема ). Запуск для пристани имеет это в выводе:

> mvn jetty:run
...
[INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml
[INFO] Web overrides = none
...

Это также заставляет меня думать, что оно не применяется. Все остальные пути правильны в выводе.

Моя самая непосредственная проблема, с которой я сталкиваюсь во время работы Jetty, заключается в том, что всякий раз, когда я редактирую статический файл (JavaScript, CSS и т. Д.) С IntelliJ IDEA 10, я получаю следующее сообщение об ошибке:

Cannot save file:
D:\...\... (The requested operation cannot be performed on a file with a user-mapped section open)

После того, как я остановил Причал, он прекрасно сохранился. Это происходит каждый раз.

Есть идеи, что я могу делать не так? Заранее спасибо.

Ответы [ 2 ]

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

Я нашел совершенно другой документ для нового плагина Jetty jetty-maven-plugin (v8.0.0.M2), и похоже, что имя конфигурации изменилось:

http://wiki.eclipse.org/Jetty/Reference/webdefault.xml#Using_the_Jetty_Maven_Plugin

<project>
    ...
    <plugins>
        <plugin>
            ...
            <artifactId>jetty-maven-plugin</artifactId>
            <configuration>
                <webAppConfig>
                  ...
                  <defaultsDescriptor>/my/path/to/webdefault.xml</defaultsDescriptor>
                </webAppConfig>
            </configuration>
        </plugin>
        ...
    </plugins>
    ...
</project>

Теперь это похоже на новый плагин.Я до сих пор не уверен, почему плагин v6 не принимает настроенную конфигурацию.

2 голосов
/ 12 апреля 2013

Единственное найденное мной решение, которое работало с плагином maven-jetty 6.1.24, было так: http://false.ekta.is/2010/12/jettyrun-maven-plugin-file-locking-on-windows-a-better-way/

...