Por padrão, o é maven-failsafe-plugin
executado no carregador de classe do sistema, o que evita que o Jetty localize os TLDs mencionados em web.xml
.
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<jetty.port>${allocated.jetty.port}</jetty.port>
</systemPropertyVariables>
<!-- This is needed so that the embedded Jetty's JSP parser can find the .tld
files for the JSTL namespaces -->
<useSystemClassLoader>false</useSystemClassLoader>
</configuration>
<executions>
<execution>
<id>failsafe</id>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
Observe que isso se aplica ao executar Jetty incorporado ( a la fat-jar), não ao inicializar o Jetty a partir de seu plug-in Maven.