2

jsps とプレゼンテーション レイヤー コードを含む war アプリケーションと、ビジネス レイヤー コードを含む共有ライブラリの 2 つの Maven アプリケーションがあります。

Maven に移行する前は、WAR アプリケーションのプロジェクト参照として共有ライブラリがありました。Netbeans で WAR アプリケーションをビルドまたはデバッグするたびに、共有ライブラリが自動的にコンパイルおよびビルドされ、新しい変更が自動的に取得されます。

Maven では、共有ライブラリに変更を加えるたびに、デバッグの前に共有ライブラリ プロジェクトをビルドする必要があるようです。古い方法の効率を維持する方法はありますか?

WAR アプリケーションをデバッグするときに、デバッグするたびに Maven に共有ライブラリの依存関係 (ローカル jar プロジェクト) を自動的にビルドさせる方法はありますか?

4

3 に答える 3

0

わかりました、Maven インボーカー プラグインを使用して最終的にこれを達成しました。

<plugin>
<artifactId>maven-invoker-plugin</artifactId>
<version>1.6</version>
<configuration>
    <projectsDirectory>../</projectsDirectory>
    <pomIncludes>
        <pomInclude>project1/pom.xml</pomInclude>
        <pomInclude>project2/pom.xml</pomInclude>
    </pomIncludes>
    <goals>
        <goal>install</goal>
    </goals>
</configuration>
<executions>
    <execution>
        <id>build-deps</id>
        <goals>
            <goal>install</goal>
        </goals>
    </execution>
</executions>

これがベストプラクティスであるとは思えませんが、仕事は完了しました。これを独自のプロファイルにインストールして、自動ビルドを妨げないようにすることができます。

于 2012-06-29T20:51:49.667 に答える
0

Eclipseでは、自動ビルド/ホットデプロイが正しく設定されているだけです。maven プラグインがインストールされていることを確認し、それをプロジェクトのビルダーとして使用してください。

netbeans がそれほど違うとは思いません。

于 2012-06-28T15:53:39.853 に答える
0

私がこれを回避した方法は、すべてのサブコンポーネントをカプセル化する親 POM を持つことです。

myProject
 +- myProject-web
 +- myProject-bl
 +- myProject-da
 \- myProject-domain

それぞれは、独自の maven 依存関係に組み込まれる個別のプロジェクトです。次に、親 POM には他のプロジェクトが含まれます。

<modules>
  <module>myProject-web</module>
  <module>myProject-bl</module>
  <module>myProject-da</module>
  <module>myProject-domain</module>
</modules>

これで、ビルドするたびにmyProject、サブコンポーネントが古くなっている場合、maven はサブコンポーネントを再構築します。Maven は各サブコンポーネントを個別にビルドするため、プロジェクトの 1 つ以上のパーツを使用する必要がある他のプロジェクトからアクセス可能な Maven リポジトリーに各パーツが作成されます。

于 2012-06-29T22:59:28.860 に答える