Как создать файл манифеста с Maven

Как создать файл манифеста с Maven

Это руководство покажет вам, как использоватьmaven-jar-plugin для создания файла манифеста и упаковать / добавить его в окончательный файл jar. Файл манифеста обычно используется для определения следующих задач:

  1. Определите точку входа приложения, сделайте Jar исполняемым файлом.

  2. Добавить путь к классам зависимостей проекта.

Когда вы запускаете командуmvn package для упаковки проекта в Jar, следующий файлmeta-inf/manifest.mf будет сгенерирован и автоматически добавлен в окончательный файл Jar.

meta-inf/manifest.mf

Manifest-Version: 1.0
Built-By: ${user.name}
Build-Jdk: ${java.version}
Created-By: Apache Maven
Archiver-Version: Plexus Archiver

1. Сделайте Jar исполняемым

Определитеmaven-jar-plugin вpom.xml и настройте файл манифеста с помощью тега конфигурации.

pom.xml

    
    org.apache.maven.plugins
    maven-jar-plugin
    2.4
    
      
        
        com.example.core.App
        
      
    
    

Будет создан следующий файл манифеста. Если вы запустите этот Jar, он выполнитcom.example.core.App.

meta-inf/manifest.mf

anifest-Version: 1.0
Built-By: example
Build-Jdk: 1.6.0_35
Created-By: Apache Maven
Main-Class: com.example.core.App
Archiver-Version: Plexus Archiver

2. Добавить путь к классам зависимостей проекта.

Большинству проектов Java требуется зависимость, и ее можно легко определить в файле манифеста. Обычно вы используетеmaven-dependency-plugin для копирования зависимостей проекта в другое место.

pom.xml

  
    org.apache.maven.plugins
    maven-jar-plugin
    2.4
    
      
        
        true
        com.example.core.App
        dependency-jars/
        
      
    
  
  
    org.apache.maven.plugins
    maven-dependency-plugin
    2.5.1
    
      
        copy-dependencies
        package
        
            copy-dependencies
        
        
            
                          ${project.build.directory}/dependency-jars/
                    
        
        
    
  

Будет создан следующий файл манифеста. Зависимости проекта будут скопированы в{project}/target/dependency-jars/.

meta-inf/manifest.mf

manifest-Version: 1.0
Built-By: example
Build-Jdk: 1.6.0_35
Class-Path: dependency-jars/log4j-1.2.17.jar
Created-By: Apache Maven
Main-Class: com.example.core.App
Archiver-Version: Plexus Archiver

Скачать исходный код

Скачать -Generate-Manifest-Using-Maven.zip (7 КБ).