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を実行可能にする

pom.xmlmaven-jar-pluginを定義し、構成タグを使用してマニフェストファイルを構成します。

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(7KB)。