Mavenでマニフェストファイルを作成する方法
このチュートリアルでは、maven-jar-pluginを使用してマニフェストファイルを作成し、それをパッケージ化して最終的なjarファイルに追加する方法を示します。 通常、マニフェストファイルは次のタスクを定義するために使用されます。
-
アプリケーションのエントリポイントを定義し、Jarを実行可能にします。
-
プロジェクト依存クラスパスを追加します。
コマンド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.xmlでmaven-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)。