WAR/JAR/EAR 中的 MANIFEST.MF 有啥用?
Posted
技术标签:
【中文标题】WAR/JAR/EAR 中的 MANIFEST.MF 有啥用?【英文标题】:What is use of MANIFEST.MF in WAR/JAR/EAR?WAR/JAR/EAR 中的 MANIFEST.MF 有什么用? 【发布时间】:2012-06-23 18:36:27 【问题描述】:我知道 MANIFEST 文件在移动应用程序中的用法,但不知道在 Java 应用程序中的用法。
我的猜测是,它仅用于保留 BUILD 信息。我说的对吗?
这是强制性的吗?如果不是,那么我们可以从中获得哪些主要好处?
【问题讨论】:
例如,您可以将其用于版本控制,如下所述:jcabi.com/jcabi-manifests/versioning.html 【参考方案1】:manifest.mf
带有工件的属性。最著名的一类是 jar
的主类,它用于在未指定其他类时启动 jar 文件。语法:
Main-Class: classname
其他用途是,例如,包密封和包版本控制。查看有关它的java教程: http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html
jar 中的清单通常包含比androidManifest.xml
少得多的信息。它非常轻巧,并且不包含任何构建或打包信息。
这是因为java没有好的模块系统。因此,一个 jar 不是一个可能需要大量配置信息的模块(比如它所依赖的模块列表)。相反,一个 jar 只是一堆带有一些配置信息的类。希望这将由 project jigsaw (http://openjdk.java.net/projects/jigsaw/) 解决。
【讨论】:
现在我的清单文件类似于“Manifest-Version: 1.0”。我的应用程序仍然运行良好。 当然,mainfest 不是必须的。它只是能够携带有关 jar 的附加信息。 我想在这里做一个比较,就像在移动应用程序中一样,没有它应用程序将无法运行,但Jar等情况并非如此,为什么? 简单回答:java 编程语言不需要它:)。你说的是什么移动平台? 不要太多。除非您完全需要教程中描述的内容之一,否则您无需考虑编写清单。与android相比,它更轻量级,它只包含一些可选配置信息,不多。以上是关于WAR/JAR/EAR 中的 MANIFEST.MF 有啥用?的主要内容,如果未能解决你的问题,请参考以下文章