12

TomcatをIntelliJ経由で実行して、SpringSourceの「SpringLoaded」クラスのリロードエージェントを試してみたいと思います。

https://github.com/SpringSource/spring-loaded

Tomcat実行構成にJVM引数を追加しましたが、Webアプリケーションはエラーなしで起動し、正常に動作しているようです。

ただし、クラスのリロードをトリガーする方法はよくわかりません。変更したクラスをコンパイルする必要がありますか?私はそれを試しましたが、うまくいかなかったようです。Tomcatを更新し、クラスとリソースをデプロイする必要がありますか?それもうまくいかないようです...?

特定の構成の詳細をいただければ幸いです。

編集:詳細については、私の問題は2つのモジュール(1つはコアコードライブラリ、もう1つはウェブアプリ)の使用に関係していると思います。私は両方にMavenを使用しています。1つはjarプロジェクトとして構成され、もう1つはwarプロジェクトとして構成されています。IntelliJは、jarモジュールのjarファイルを使用するように爆発戦争のアーティファクトを設定します。代わりに、Artifact構成を切り替えて、jarモジュールのコンパイル済み出力をWEB-INF/classesに組み込んでみました。これで、target / webapp / WEB-INF / class/etcに.classファイルが表示されます。しかし、IntelliJを編集するときに、特定のクラスファイルを更新する方法がわかりません。

4

2 に答える 2

5

次の jvm パラメーターを (スプリングロードされたページで説明されているように) Tomcat に追加した場合

-javaagent:<pathTo>/springloaded-{VERSION}.jar -noverify SomeJavaClass

あなたは大丈夫なはずです。テストしている webapp の tomcat で自動リロードを無効にすると役立つ場合があります。たとえば、server.xml の場合:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
    <Context docBase="projekt" path="/projekt" reloadable="false" ...

これにより、スプリングロードされたクラスローダーのみが変更されたクラスをロードすることが保証されます。

于 2013-09-16T11:50:08.567 に答える