2016-12-05 13 views
0

実行可能なJARとしてAIXマシンにデプロイされるアプリケーションがあります。私はMavenのシェードを使って、JARにパックされたすべての依存関係を持つUber JARを構築しました。 Spring、Logback、およびjavax.mailです。アプリケーションは、シェルスクリプトを実行している別のプログラムによって呼び出されます。それはすべて正常に動作します。 DBAは、JARからすべての依存関係を削除し、AIXマシン上のディレクトリーに配置し、それらの場所をAIXユーザーのCLASSPATHに組み込むように要求しました。彼はこれがベストプラクティスであると指摘した。私はコンテナが提供する依存関係をパッケージ化しないためにMavenでは<scope>provided</scope>タグを使用していましたが、このタイプの要求をJARで実行したことはありません。このようなシナリオではこれがベストプラクティスですか?JAR依存関係のデプロイに関するベストプラクティス

+0

再利用しますか?これまでに得た唯一の確かな答えです。 – Hodglem

+0

なぜ 'java -jar ...'で始めることができる単一のjarパッケージにするのではなく、すべてのjarを含むlibフォルダが分離されているのでしょうか?クラスパスをユーザーに無関係にするのは奇妙に聞こえるのですか?これは、appassemlber mavenプラグインによって実現できます。クラスパス生成などを処理するためのシェルスクリプトを生成することができます。 – khmarbaise

+0

libsの一部を再利用する場合は、より多くの更新を行う共有ライブラリを導入してください不可能ではないにしても複雑な...自己完結型の道を行くほうがいいよ... – khmarbaise

答えて

0

Uber-JARでは、依存関係は表示されません。しかし、アプリケーションに使用されているすべてのライセンス(たとえばgnu、asf ...)のリストを公開する必要があるため、そこには多くの人がいて、すべての依存関係を知り、リストする必要があります。

すべての依存関係の明確なリストが必要な場合は、Uber-JARを使用するのがベストプラクティスではありません。

関連する問題