これが私が達成したいことの小さな例です:
Maven Artifact Aは多くのWebサービスの1つであり、要求と応答の定義を使用してXSDスキーマを定義します。(src / main / resources / xsd)
アーティファクトAはアーティファクトBに依存しており、これは単純なJARプロジェクトであり、低レベルのタイプ記述を持つ多数のマスターXSDが含まれています。(src / main / resources / xsd)
アーティファクトAのXSDは、アーティファクトBで一度指定されたタイプ定義(インクルード)を使用します。
可能であれば、Maven依存関係としてロードされるjarにあるxsdファイルを含める方法と、NetbeansやEclipseなどのIDEでWebサービス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
このような問題にはいくつかの解決策があるようですが、自分の環境にそれらを実装する方法がわかりません。
(netbeans7.1)IDE(dev environemnt用)に埋め込まれ、Mavenプラグイン(本番環境用)として利用可能なカタログリゾルバーを知っています。これにより、スキーマファイルの場所にエイリアスを指定できるはずです。このエイリアスは、スキーマの場所として使用する必要があります。
ただし、JARファイル内のスキーマにアクセスするCatalog.xmlを指定する方法がわかりません。私には、スキーマの場所で直接指定するのと同じ問題のようです。また、各WARのカタログを維持するためのオーバーヘッドがあります。これは、可能な限り採用したくないプロジェクトです。
Mavenプラグインに関しては、まだ決定的なものは何も見つかりませんでした。
他のソースはjax-bのコンテキストでカスタムカタログリゾルバーを実装していますが、Java-WS環境でそのようなリゾルバーを実装するための可能なフックと、上記のmaven-pluginと組み合わせてどのように機能するかはまだわかりません。またはIDEカタログリゾルバ...