2009-08-24 8 views
6

複数のアーティファクトを1つのPOMファイルに構築できますか?複数のアセンブリを構築することではありませんが、アーティファクトは異なるビルドと依存関係を持ちますが、同じソースを参照しています。Maven - 単一のPOMで複数のビルド

私が構築する必要のあるアーティファクトは、特定のAspectJファイルをビルドから除外するWARファイルと、もう1つはビルド中にウィービングされるべきアスペクトを必要とするJARファイルです。

現時点では、同じソースの2つのコピーで実行される2つのpom.xmlがあり、目的のアーティファクトを生成します。単一のPOMでこれを行うことはできますか?

答えて

9

あなたが後にしていることをやってみるのは悪い習慣ですが、私はそれを推奨するプロファイルやアセンブリで行うことができます。

これは私がそれにアプローチする方法です。

コードをjarプロジェクトに区切り、aspectjコンパイラプラグインを使用するようにjarプロジェクトを構成します。戦争プロジェクトをjarプロジェクトに依存させ、jarプロジェクトはaspectjrtに依存するようにします。除外するjar依存関係は、スコープ「提供済」として指定することができ、jar依存関係を除外するようにjar依存関係を構成することにより、ビルドに含めたり除外したりすることができます。Dependency Mechanism documentation推移従属除外セクション。

戦争が構築され、任意のコンパイルスコープの依存関係(およびその推移の依存関係は)戦争のWEB-INF/libディレクトリにバンドルされます(つまり、aspectjrtも同様に含まれます)。

あなたの場合両方のプロジェクトを一度に構築して集約者pomを定義し、jarプロジェクトとwarプロジェクトの両方をモジュールとして指定する必要があります。

0

hmm、私は最も簡単な方法は、構文を使用してスーパーポンと考えています。 2つのターゲットを持つ1つのポンよりも保守が簡単になるようです。

関連する問題