Что хранится в файле манифеста?

В JAR архиве можно найти файл META-INF/MANIFEST.MF. Это манифест архива – хранилище его метаинформации. Манифест обычно добавляется той же утилитой, которой собирается jar-файл: maven-jar-plugin, команда JDK jar.

Манифест – текстовый файл, который состоит из заголовков, строчек вида ключ: значение. Заголовки разделены на секции. Файл начинается с главной секции, описывающей метаинформацию всего архива. Следом, отделенные пустыми строками, идут секции для отдельных пакетов и файлов. В них могут переопределяться общие заголовки. JVM игнорирует неизвестные ей заголовки, что позволяет сторонним утилитам хранить в манифесте свою специфичную метаинформацию.

Вот некоторые из часто используемых заголовков:
  • Информация об архиве: Manifest-Version, Created-By, Multi-Release, Built-By
  • Main-class – точка входа приложения
  • Classpath приложения
  • Информация об экстеншне (Specification и Implementation, deprecated)
  • Заголовки OSGI бандла
  • Типы и хэши файлов архива (особенно применимо в Android приложениях)

Полный список стандартных заголовков можно почитать в документации.