Dies ist aufgrund der Tatsache, dass Jetty 9 Scans alle Gläser im WEB-INF-Ordnern für Anmerkungen, um den Web-Kontext zu starten. Wenn Sie versucht haben, eine Lösung für dieses Problem zu finden, haben Sie diese Tatsache wahrscheinlich schon entdeckt. Ich habe mehrere solche Antworten versucht, aber nie die richtige Lösung gefunden.
Um das Scannen so weit wie möglich zu vermeiden, können wir ein Muster definieren, das Jetty mitteilt, welche Quellen gescannt und welche nicht gescannt werden sollen. Dies geschieht, indem entweder eine Konfiguration in maven festgelegt wird oder indem ein Attribut in jetty-context.xml
gesetzt wird. (Wenn Sie das Maven Plugin verwenden, müssen Sie Jetty ist gesetzt jetty-context.xml
auch in Ihrem pom.xml
)
einige andere Lösungen, die nicht für mich gearbeitet haben (entweder keine Zunahme der Startzeit oder keine korrekte Inbetriebnahme überhaupt)
Jetty 8.1.2 startup delay jetty8 with maven plugin takes to long to start
usw.
Die richtige Lösung auch solche jetty-context.xml
verwenden, aber mit einem anderen Muster erfolgt. In einer Spring-Anwendung müssen wir die Spring-Jars scannen, und dies allein wird bereits einen großen Schub geben, wenn Sie viele Abhängigkeiten haben. Noch besser ist, wenn Sie nur die spring-web
Gläser scannen. Wenn Sie Spring Security verwenden, ist es möglicherweise auch erforderlich, diese Jars einzubeziehen.
Als solches ist das Muster, das mir maximale Beschleunigung gab hier gezeigt:
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Call name="setAttribute">
<Arg>org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern</Arg>
<Arg>.*/spring-security[^/]*\.jar$|.*/spring-web[^/]*\.jar$|.*/classes/.*</Arg>
</Call>
</Configure>
Wir nichts ausschließen, die nicht in unserem classes
Ordner in WEB-INF
, sowie alle Gläser, die beinhalten nicht die RegexMuster ist gegeben.
Hoffe das hilft jemandem!
Es gibt auch das 'quickstart'-Modul in Jetty 9.2.x, das den Scan zur Build/Compile-Zeit durchführen kann, wodurch ein" Jetty-Quickstart "erstellt wird.xml' von dem, was es in der WAR-Datei findet, wodurch der Produktionsstart in Sekundenbruchteilen erfolgt. –
Das ist eigentlich ziemlich cool. Ich werde versuchen, ein Beispiel dafür zu finden, wie man das macht, also kann ich es zu dieser Antwort hinzufügen, oder Sie können Ihre eigenen einsenden, wenn Sie eins in einer Antwort haben :). Vielen Dank! – froginvasion
Ich sehe keinen großen Unterschied, egal welche Lösung ich versuchte. –