windows - Jetty Maven Plugin ignorerer brugerdefinerede webdefault.xml

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at omgå det fælles problem med anløbsbro, der låser statiske filer på Windows med teknikken til at indstille useFileMappedBuffer til falsk i webdefault.xml. Desværre hver gang Jetty ikke afhenter mit tilpassede webdefault.xml. [8]


Jeg har brugt Apache Maven 3.0.2. Jeg har prøvet at bruge maven-jetty-plugin (v6.1.26) og mølle-maven-plugin (v8.0.0.M2), men uden forskel. Jeg har forsøgt at køre ren og genopbygge også før kører anløbsbro. [9] [10]


Jeg har verificeret hver gang, at min webdefault.xml blev taget fra samme version som pluginet og har de korrekte indstillinger, nemlig kun at ændre denne indstilling fra true til false:


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


Og her er hvad min pom.xml Jetty plugin sektion ligner:


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


Jeg har også forsøgt at ændre stien til min fil:


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


Overalt har jeg set denne nøjagtige løsning, og det lyder som om det virker for andre (selvom jeg fandt en instans hvor nogen havde mit problem). Opstart til anløbsbro har dette i output: [11] [12]


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


Dette gør mig yderligere opmærksom på, at det ikke bliver anvendt. Alle de andre stier er korrekte i output.


Mit mest direkte problem, som jeg ser, når anlægget kører, er, at når jeg redigerer en statisk fil (JavaScript, CSS osv.) Med IntelliJ IDEA 10, får jeg denne fejlmeddelelse:


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


Når jeg stopper anløbsbro, sparer det bare fint. Dette sker hver gang.


Nogen ideer hvad jeg kunne gøre forkert? Tak på forhånd.

Bedste reference


Jeg fandt en helt anden doc til den nyere Jetty plugin jetty-maven-plugin (v8.0.0.M2) og det ser ud til, at konfigurationsnavnet er ændret:


http://wiki.eclipse.org/Jetty/Reference/webdefault.xml#Using\_the\_Jetty\_Maven\_Plugin[13]


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


Dette ser nu ud til at virke for den nyere plugin. Jeg er stadig ikke sikker på, hvorfor v6-plugin'et ikke afhenter den tilpassede config.

Andre referencer 1


Den eneste løsning, jeg fandt ud af at fungerede med maven-pier-plugin 6.1.24 var dette:
http://false.ekta.is/2010/12/jettyrun-maven-plugin-file-locking-on-windows-a-better-way/[14]