2011-09-16 1 views
2

私はマルチモジュールプロジェクトを持っています。モジュールの1つでは、wsdlからクラスを生成しています。このモジュールのポームでは、別のモジュールのいくつかのプロパティが必要です。 (build.directory、outputDirectoryなど)他のモジュールのMavenモジュールのプロパティ

これは何か可能ですか?

${project.parent.module.0.build.directory} 

私は上記のどこかを見たと思います。 module.0を実行すると、モジュールが親pomで宣言されている順番に依存しているため、テストを気にしませんでした。

私が欲しいものをやっているエレガントな方法はありますか?

+0

あなたがそれを行うなら、あなたはメイヴンの目標を破っていると思います。それぞれのモジュールは独立していなければなりません。あなたがしようとしていることは、この前提に反するものです。問題が潜在的に存在するため、モジュールをどのように分割するのかを再考することをお勧めします。 – Augusto

+0

はい私はあなたが意味することを知っています。ヘッドアップをありがとう。問題は、このプロジェクトが既にそれを超えていることです。すべてのモジュールは、他のモジュールのクラスをどのように使用するかによって、互いに結合されています。あなたが1つのモジュールを取り出した場合、モジュールが見せるだけのようです。 – Cristian

+0

他のモジュールのプロパティが必要なのはなぜですか?あなたがWSDLモジュールにいる場合、このモジュール内でクラスなどを生成することができ、結果は他のモジュールが依存として使用できるjarです。あるいは、それが所有するモジュールごとに$ {build.outputDirectory}というプロパティが定義されていることを意味しますか?だからあなたは他人を必要としません。 – khmarbaise

答えて

0

これを行う適切な方法は、親を持つことです。そこにプロパティを定義し、それを他のモジュールの親として単純に使用します。そうすれば、モジュール間で簡単にプロパティを共有できます。

+0

本当に!私は親で財産を作った。 'moduleX_target_output'です。それをモジュールとコピーリソースプラグインで使用しました。それはかなりきれいです。もし私がその道を変えたら、私はただ財産を変えるだけです。 – Cristian

0

Mavenはこの種のアクセスを提供しません。 Groovy via GMavenを使用して、他のpomをXMLとして解析し、必要なものを得ることができます。

関連する問題