web-dev-qa-db-ja.com

WAR / JAR / EARでのMANIFEST.MFの使用とは何ですか?

モバイルアプリケーションでのマニフェストファイルの使用については承知していますが、Javaアプリケーションでの使用については承知していません。

私の推測では、ビルド情報のみを保持するために使用されているようです。私は正しいですか?

これは必須ですか?そうでない場合、これを使用して得ることができる主な利点は何ですか?

21
Ashish Agarwal

manifest.mfは、アーティファクトの属性を保持します。最もよく知られているものの1つは、たとえば、他のクラスが指定されていないときにjarファイルを開始するために使用されるjarのメインクラスです。構文:

Main-Class: classname

他の目的は、例えば、パッケージのシーリングとパッケージのバージョン管理です。 Javaそれに関するチュートリアル: http://docs.Oracle.com/javase/tutorial/deployment/jar/manifestindex.html を確認してください。

Jarのマニフェストには通常、たとえばAndroidManifest.xmlよりもはるかに少ない情報が含まれています。それは非常に軽量であり、ビルド情報やパッケージ情報は含まれていません

これは、Javaには優れたモジュールシステムがないためです。したがって、jarは、依存関係のあるモジュールのリストなど、多くの構成情報を必要とする可能性があるモジュールではありません)。 jarは、いくつかの構成情報を持つクラスの集まりです。うまくいけば、これはproject jigsawhttp://openjdk.Java.net/projects/jigsaw / )。

20
gexicide