Skip to content

Maven Assemblyプラグインを使用したFat JARの作成

サンプルプロジェクト: tutorial-server-get-started-maven

Maven Assemblyプラグインは、プロジェクトの出力を、依存関係、モジュール、サイトドキュメント、その他のファイルを含む単一の配布可能なアーカイブに結合する機能を提供します。

Assemblyプラグインの設定

アセンブリをビルドするには、まずAssemblyプラグインを設定する必要があります。

  1. pom.xmlファイルを開き、メインアプリケーションクラスが指定されていることを確認します。

    xml
    <properties>
        <main.class>io.ktor.server.netty.EngineMain</main.class>
    </properties>

    この例では、EngineMainがサーバーの作成に使用されているため、アプリケーションのメインクラスは使用されるエンジンに依存します。embeddedServerを使用する場合、アプリケーションのメインクラスはcom.example.ApplicationKtになります。

  2. pluginsブロックにmaven-assembly-pluginを追加します。

    xml
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>3.7.1</version>
        <configuration>
            <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
            <archive>
                <manifest>
                    <addClasspath>true</addClasspath>
                    <mainClass>${main.class}</mainClass>
                </manifest>
            </archive>
        </configuration>
        <executions>
            <execution>
                <id>assemble-all</id>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

アセンブリのビルド

アプリケーションのアセンブリをビルドするには、ターミナルを開いて次のコマンドを実行します。

Bash
mvn package

これにより、.jarファイルを含むアセンブリ用の新しいtargetディレクトリが作成されます。

生成されたパッケージを使用してDockerでアプリケーションをデプロイする方法については、Dockerのヘルプトピックを参照してください。

アプリケーションの実行

ビルドされたアプリケーションを実行するには、以下の手順に従ってください。

  1. 新しいターミナルウィンドウで、java -jarコマンドを使用してアプリケーションを実行します。サンプルプロジェクトの場合は、次のようになります。

    Bash
    java -jar target/tutorial-server-get-started-maven-0.0.1-jar-with-dependencies.jar
  2. アプリが起動すると、確認メッセージが表示されます。

    Bash
    [main] INFO  Application - Responding at http://0.0.0.0:8080
  3. URLリンクをクリックして、デフォルトのブラウザでアプリケーションを開きます。

    Output of generated ktor project