2

コードと依存関係で構成されるシェードジャーをパッケージ化しようとしています。すべてを正常にパッケージ化できますが、DataNucleus(datanucleus-core、datanucleus-api-jdo、datanucleus-rdbms)を使用しているため、ルートディレクトリにplugin.xmlがあります。シェードに付属するXmlAppendingTransformerを使用してみましたが、これらのxmlのルート要素は<plugin>トランスフォーマーであるため、すべての<extension>要素を1つの巨大な<plugin>タグにマージし、実行時にDataNucleusクラスローダーが適切なプラグインを見つけることができません。だから私の質問は:

1)すべての依存関係を1つのjarにパッケージ化することは良い習慣ですか?または、依存関係をフォルダーにコピーし、実行時にそのフォルダーをクラスパスに含める必要がありますか?

2)DataNucleusをjarと一緒にパッケージ化する場合、複数のplugin.xmlを処理する方法は?ルートタグに入れてみました<plugins>が、うまくいきませんでした。それらはルートフォルダにある必要がありますか?シェーディングプロセス中にそれらを別のフォルダーに移動できますか?

4

1 に答える 1

0

すべてのplugin.xml(Eclipse OSGiプラグイン)はCLASSPATHのルートにある必要があるため、それらをマージする必要があります。同様に、META-INF / MANIFEST.MF(OSGiメタデータ)のコンテンツをマージする必要があります。

いい練習 ?私はどちらの方法でも議論しません。環境とプロジェクトに適していると感じることを実行してください。

それらを確実にマージする方法を見つけた場合は、そのようなことをしたい人の利益のためにDNドキュメントに入れることができるように私たちに知らせてください。他の人は以前に試しました、stackoverflowIIRCに関するいくつかの投稿

于 2013-01-15T08:40:03.430 に答える