1

私は次のようなプロジェクト構造を持っています

module-a/src/main/java
module-a/src/main/styles
module-distribution/src/main/assembly

module-distributionはmodule-aに依存し、両方とも親pomを共有し、その親pomにモジュールとして含まれます。

アイデアは、次のようなアセンブリレイアウトを持つことです

my-final-assembly/lib
my-final-assembly/styles

libディレクトリに依存関係(つまり、module-a.jarとその依存関係jar)を含むすべてのプロジェクトアーティファクトが含まれている場合、module-a.jarにはそのstylesディレクトリを含めるべきではありません。stylesディレクトリはmy-final-assembly/stylesにある必要があります。

libディレクトリに簡単に記入できます。

<dependencySet>
    <useProjectArtifact>false</useProjectArtifact>
    <outputDirectory>lib</outputDirectory>
</dependencySet>

私のアセンブリファイルで。しかし、module-a / src / main / stylesはどうですか?私は出来ます

  1. モジュールに含める-アーティファクト(module-a.jarに存在します)
  2. module-a.jarには含めないでください。

確かに、1)と2)の両方が私には有効ではありません。最初のケースでは、module-a.jarからstylesディレクトリを何らかの方法で抽出する必要があります。2番目のケースでは、スタイルディレクトリはまったくコピーされません。これは、ターゲットフォルダ全体ではなく、アーティファクトのみをコピーするためです。

stylesディレクトリの内容に個別のモジュールを作成し、module-aをそれに依存させる最後の手段がありますが、それは私にはやり過ぎのように見えます。アセンブリファイルを調整して、その場合に必要なものを取得するのは簡単ですが。しかし、1つのモジュールに必要な一連のフォントとxml用の個別のモジュールはありますか?それは悲しいことですが、それがMavenWayと呼ばれるものであれば準備はできています。

4

1 に答える 1

1

どういうわけか、スタイルをプルして「最終アセンブリ」に含めることができるようにするには、ある時点でスタイルをアーティファクトに配置する必要があります。私は3つのアプローチを考えることができます:

最初のアプローチは、あなたが説明していることです。スタイルを別のモジュールに配置し、ボットmodule-aとmodule-distributionをそれに依存させます(実際、module-aがそれに依存している理由はよくわかりません。 'それらを使用していない/モジュールに含めていない-アーティファクトですが、これはあなたの裁量に任されています)。

2番目のアプローチは、現在の構造を維持しながら、モジュールaの中間アセンブリを作成することです。このアセンブリには、module-a.jarスタイル(またはスタイルのみ)が含まれます。次に、モジュール配布で、このアセンブリをプルして解凍し、「最終アセンブリ」を作成します。

3番目のアプローチは、final-assemblyがmodule-aから直接作成されることを除いて、前のアプローチと似ています(module-distributionにmodule-a以外の依存関係があるかどうかは不明です。そうでない場合は、次のようにすることができます。モジュールからのすべて-a)。

于 2010-03-26T07:13:09.290 に答える