これは、Web コンテキストを開始するために、Jetty 9 が注釈の WEB-INF フォルダー内のすべての Jar をスキャンするという事実によるものです。この問題の解決策を見つけようとしたことがある場合は、おそらくすでにその事実に気付いているでしょう。そのような答えをいくつか試しましたが、その中に正しい解決策は見つかりませんでした。
このようなスキャンを可能な限り排除するために、スキャンするソースとスキャンしないソースを Jetty に伝えるパターンを定義できます。これは、maven で何らかの構成を設定するか、jetty-context.xml
. (maven プラグインを使用している場合は、Jettyjetty-context.xml
も に設定する必要がありますpom.xml
)
私にとってうまくいかなかった他のいくつかの解決策(起動時間の増加がないか、まったく正しく起動しないかのいずれか)
Jetty 8.1.2 の起動遅延
maven プラグインを使用した jetty8 の起動に時間がかかる
等
正しい解決策もそのようなものを使用して行われますjetty-context.xml
が、別のパターンを使用します。Spring アプリケーションでは、Spring jar をスキャンする必要があります。多くの依存関係がある場合、これだけですでに大幅なブーストが得られます。spring-web
代わりに jarのみをスキャンするとさらに良いでしょう。Spring Security を使用している場合は、それらの jar を含める必要がある場合もあります。
そのため、最大のスピードアップを実現したパターンを次に示します。
<?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>
classes
のフォルダーにないWEB-INF
もの、および指定された正規表現パターンを含まない jar ファイルはすべて除外されます。
これが誰かを助けることを願っています!