8

マルチモジュールの Maven プロジェクトを使用して、Java Web アプリケーションを開発しています。プロジェクトのセットアップは次のとおりです。

  • pom.xml次のモジュールを含むメインの maven プロジェクト:
    • persistence:エンティティ クラスと DAO
    • business:サービスの定義と実装
    • webapp:Apache ウィケット Web アプリケーション

webapp依存関係businessの階層は次のとおりですpersistence

また、Jetty Maven プラグインmvn -pl webapp jetty:runを使用して、メインのディレクトリ内でローカルに Web アプリケーションを実行していますpom.xml。アプリケーションを開発するとき、コードを変更するときに、jetty サーバーを再起動して、変更されたコード ファイルを自動的にリロードするようにしたいと考えています。これは、webappモジュール内のファイルを変更している場合は正常に機能しますが、別のモジュール内のファイルを変更している場合は機能しませpersistencebusiness

Maven Jetty プラグインは内部webapp/pom.xmlで次のように構成されます。

<plugin>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>9.2.2.v20140723</version>
    <configuration>
        <reload>automatic</reload>
        <scanIntervalSeconds>1</scanIntervalSeconds>
        <webApp>
            <extraClasspath>../business/target/classes/;../persistence/target/classes/</extraClasspath>
        </webApp>
        <scanTargets>
            <scanTarget>../business/target/classes</scanTarget>
            <scanTarget>../persistence/target/classes</scanTarget>
        </scanTargets>
</plugin>

この回答の指示に従いました。or内の<scanTarget>ファイルを変更すると jetty が再起動されるため、タグは正常に機能します。ただし、変更されたファイルは jetty によってロードされないため、 は機能しません。リンクされた回答はタグを使用しています。ただし、プラグインのドキュメントで指定されているタグを使用しています (同じ結果につながる古いタグも試しました)。businesspersistence<extraClasspath><webAppConfig><webApp><webAppConfig>

私の質問は次のとおりです。他のモジュールから変更されたファイルをリロードするように、マルチモジュール プロジェクト用に Jetty Maven プラグインを構成する方法は?

4

3 に答える 3

3

次の構成は私にとってはうまくいきます

    <!-- To launch embded jetty server -->
<plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>7.4.2.v20110526</version>


    <configuration>
        <scanIntervalSeconds>3</scanIntervalSeconds>
        <webAppConfig>
            <contextPath>/${project.name}</contextPath>
            <extraClasspath>target/classes;../services/target/classes;../util/target/classes</extraClasspath>
        </webAppConfig>
        <scanTargets>
            <scanTarget>target/classes</scanTarget>
            <scanTarget>../services/target/classes</scanTarget>
            <scanTarget>../util/target/classes</scanTarget>
        </scanTargets>
    </configuration>

</plugin>
于 2014-09-08T15:04:10.740 に答える