コードと依存関係で構成されるシェードジャーをパッケージ化しようとしています。すべてを正常にパッケージ化できますが、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>
が、うまくいきませんでした。それらはルートフォルダにある必要がありますか?シェーディングプロセス中にそれらを別のフォルダーに移動できますか?