このチュートリアルでは、 `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.xml`に

maven-jar-plugin`を定義し、マニフェストファイルを設定タグで設定します。

pom.xml

    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <configuration>
      <archive>
        <manifest>
        <mainClass>com.mkyong.core.App</mainClass>
        </manifest>
      </archive>
    </configuration>
    </plugin>

次のマニフェストファイルが生成されます。このJARを実行すると、 `com.mkyong.core.App`が実行されます。

meta-inf/manifest.mf

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

2.プロジェクト依存クラスパスを追加します.

ほとんどのJavaプロジェクトは依存関係を必要とし、マニフェストファイルで簡単に定義できます。通常、 `maven-dependency-plugin`を使ってプロジェクト依存関係を他の場所にコピーします。

pom.xml

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <configuration>
      <archive>
        <manifest>
        <addClasspath>true</addClasspath>
        <mainClass>com.mkyong.core.App</mainClass>
        <classpathPrefix>dependency-jars/</classpathPrefix>
        </manifest>
      </archive>
    </configuration>
  </plugin>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.5.1</version>
    <executions>
      <execution>
        <id>copy-dependencies</id>
        <phase>package</phase>
        <goals>
            <goal>copy-dependencies</goal>
        </goals>
        <configuration>
            <outputDirectory>
                          ${project.build.directory}/dependency-jars/                    </outputDirectory>
        </configuration>
        </execution>
    </executions>
  </plugin>

次のマニフェストファイルが生成されます。プロジェクトの依存関係は `{project}/target/dependency-jars/`にコピーされます。

meta-inf/manifest.mf

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

ソースコードをダウンロードする

それをダウンロードしてください://wp-content/uploads/2012/11/Java-project-into-jar-maven.zip[Generate-Manifest-Using-Maven.zip](7 KB)。

参考文献

マニフェストの例]。 link://maven/how-to-create-a-jar-file-with-maven/[Jarを作成する方法

Mavenのファイル]