私が達成したいかの小さな例です:複数のMavenアーティファクトの上にXSDファイルを配布し
のMavenアーティファクトAは、多くのウェブサービスの一つであり、要求および応答のための 定義をXSDスキーマを定義します。 (src/main/resources/xsd)
アーティファクトAは単純なJARプロジェクトであり、低レベルのタイプ記述を持つ多数のマスターXSDを含む を含んでいます。私は実際にどのようにお知りになりたいすべての可能性の場合は一度アーティファクトB.
で を指定している(SRC /メイン/リソース/ XSD)
アーティファクトA内のXSDは、型定義を使用する(含まれます) maven依存関係としてロードされたjarにあるxsdファイルと、NetbeansやEclipseのようなIDEのwebservice xsd(およびwsdl)を解決する方法が含まれています。
このアプローチがエキゾチックなようであれば、クリーンなデザインの方が良いでしょうか?ここ
まず
更新は、私は、スキーマは仕事に含ま期待方法の簡単な例です....
Artifact A (WAR Module)
POM:
...
<artifactId>A</artifactId>
...
<dependency>
<artifactId>B</artifactId>
...
</dependency>
Schema:
....
<xs:include schemaLocation="classpath://net/elfwyn/xsd/schema.xsd"/>
....
Artifact B (JAR Module)
Schema Location:
src/main/resources/net/elfwyn/xsd/schema.xsd
、このような問題のために、いくつかのsollutionsがあるように思われます
(netbeans7.1)IDE(開発環境用)に組み込まれ、Mavenプラグイン(本稼働環境用)として利用可能なカタログリゾルバーの知りたいことは、 atは、スキーマファイルの場所にエイリアスを指定できる必要があります。このエイリアスは、スキーマの場所として使用されます。
しかし、JARファイル内のスキーマにアクセスするCatalog.xmlを指定する方法はわかりません。 私には、スキーマの場所で直接指定するのと同じ問題があるようです。 また、すべての可能な場合には、私がむしろ取ることのない各WARプロジェクトのカタログを維持するオーバーヘッドがあります。
Mavenプラグインについてはまだ決定的なものは見つかりませんでした。
その他sources
は、JAX-B、 のコンテキストでカスタムカタログリゾルバを実装しているが、私はまだJavaの-WS環境で、このようなリゾルバを実装するための可能なフックを見ることができない、それはと連携して動作するはずですか上記のmaven-pluginまたはIDEカタログリゾルバを参照してください。
私はまだあなたの解決策を確認するための時間がなかったが、それは非常に合理的と賞金がすぐに使い果たされるように私は正しい答えとしてこれを取る。ありがとうございました! – elfwyn
@Stefan - 問題が発生した場合は、ここにコメントを残しておいてください。 – HDave
これを 'initialize'に束縛すると、' target'ディレクトリがまだ存在しないことがあります。私はまた、Eclipseで大きな問題を抱えていましたが( 'mvn:compile'も使用しています)、恐ろしい'ソースはディレクトリの5年目のバグであってはいけません。それが一番きれいなソリューションなので+1してください。 – artbristol