0


0

JarsがEnunciateの配置から除外されるのはなぜですか?

私はプロトタイプのREST APIを構築するためにhttp://enunciate.codehaus.org [Enunciate]を使用しており、カスタムコードを含むjarファイルをライブラリとして含める必要があります。

私のAntスクリプトはこんな感じです:


問題は、私のカスタムjarファイルがWARファイルから除外されていることです。 コンパイル時にjarが明らかにクラスパス上にあるように、enunciateアノテーション付きクラスをコンパイルする必要がありますが、enunciateはディストリビューションに含めることができません。 また、enunciateに必要なjarファイルのいくつかがWARファイルに含まれていないことにも気付きました。

なぜそれらは除外されているのですか、またどのように修正しますか?

3 Answer


2


私は決してenunciateを使ったことはありませんが、簡単な方法としてjarファイルを戦争に追加することができます。


注意:jarファイルは、ルートディレクトリではなく* WEB-INF / lib *ディレクトリに追加することをお勧めします。

あなたはあなたのjarファイルに何を入れるべきかを最もよく知っているので、enunciateはあなた自身のビルドプロセスを妨げるためにmininumをすると思います。


1


含めることを試みているjarファイルの1つが判明したので、Enunciateが依存しているjarファイルのマニフェストファイル(freemarker)に依存関係がリストされています。 Enunciateは自動的にfreemarkerを除外しますが、一見するとfreemarkerに依存するものも自動的に除外しているように見えます。 コードのマニフェストファイル内の依存jarのリストからfreemarkerを削除しても、問題なく動作します。

しかしながら;私はEnunciate(Ryan Heaten)の主な開発者と話しました、そして、彼はこれが起こっていないことを私に保証します。 以下に彼の回答を含めます。

_ _ 本当に?!

Wow. 面白い。 説明できません。 Enunciateは、戦争に何を含めるべきかを決定するために、マニフェストの内容を調べません。そのため、ここではちょっと困惑しています。 奇妙なAntの振る舞いもあるかもしれません(なんらかの理由で "en.classpath"リファレンスにそのjarを含まない)。

〜ライアン _ _


0


enunciate.xmlの中で私はlib自身をコピーしないように言っています:


それからenunciateタスクの最後にあるAntビルドファイルで、warを更新します(上記のステップでEnunciateがjarファイルをコピーしているかどうかにかかわらず、これを実行して包含/除外jarを更新できます)。