2

3 つ以上の Maven プロジェクト (HTML、JavaScript、および CSS ベース) を 1 つに結合したいと考えています。私の主なプロジェクトは、他のプロジェクトからの依存関係を使用しています。では、これらの依存関係を変更せずに単一のプロジェクトをビルドするにはどうすればよいでしょうか?

4

2 に答える 2

4

次のようなマルチモジュールプロジェクトがあるとします。

  1. mysite:親pomモジュール。
  2. mysite-core:Javaモジュール
  3. mysite-web:Webリソースモジュール(javascript、html、...)
  4. mysite-webapp:戦争モジュール

mysitepackaging pom他の3つがあり、含まれていますmodules

<groupId>mysite</groupId>
<artifactId>mysite</artifactId>
<packaging>pom</packaging>
<modules>
   <module>../mysite-core</module>
   <module>../mysite-web</module>
   <module>../mysite-webapp</module>
</modules>

mysite-core標準を使用しますjar packaging

<parent>
   <artifactId>mysite</artifactId>
   <groupId>mysite</groupId>
   <relativePath>../mysite/</relativePath>
</parent>
<groupId>mysite</groupId>
<artifactId>mysite-core</artifactId>

mysite-web似ている:

...
<artifactId>mysite-web</artifactId>

mysite-webapp依存関係としてJavaおよびWebリソースモジュールが含まれています。

...
<artifactId>mysite-webapp</artifactId>
<packaging>war</packaging>

<dependency>
   <groupId>mysite</groupId>
   <artifactId>mysite-core</artifactId>
</dependency>
<dependency>
   <groupId>mysite</groupId>
   <artifactId>mysite-web</artifactId>
</dependency>

maven-war-pluginoverlaysプロパティを使用して、リソースを戦争に追加します。

<overlays>
   <overlay>
      <groupId>mysite</groupId>
      <artifactId>mysite-web</artifactId>
      <type>jar</type>
   </overlay>
</overlays>

注:次のように、フラットなプロジェクトレイアウトを使用することをお勧めします。

    • 親pomモジュール
    • javapomモジュール
    • java-1jarモジュール
    • java-2jarモジュール
    • Webリソースjarモジュール
    • 戦争モジュール

階層レイアウトの代わりに:

    • 親pomモジュール
      • javapomモジュール
      • java-1jarモジュール
      • java-2jarモジュール
      • Webリソースjarモジュール
      • 戦争モジュール

Eclipseのようなツールは、階層構造(遅い、または無限のビルド)を好まないことに気づきました。

于 2012-12-31T20:48:48.493 に答える
-1

Maven モジュールを使用します。ここに広範なドキュメントがあります:

http://maven.apache.org/guides/mini/guide-multiple-modules.html

于 2012-12-31T11:05:18.513 に答える