Spring Bootでファットジャーアプリを作成する

Spring BootでFat Jarアプリを作成する

1. 前書き

近年の心温まる開発の1つは、Webアプリケーションの展開方法の継続的な簡素化です。

退屈な中間の歴史的なステップをすべてスキップして、今日に到達します。面倒なサーブレットやXMLボイラープレートだけでなく、ほとんどのサーバー自体も不要になります。

この記事では、creating a “fat jar” out of a Spring Boot applicationに焦点を当てます。基本的には、デプロイと実行が簡単な単一のアーティファクトを作成します。

Bootは、すぐに使用できるコンテナレスデプロイメントの機能を提供します。必要なのは、pom.xml:にいくつかの構成を追加することだけです。


    
        org.springframework.boot
        spring-boot-starter-web
        2.0.1.RELEASE
    



    
        org.springframework.boot
        spring-boot-maven-plugin
        2.0.1.RELEASE
    

2. ビルドして実行

この構成により、標準のmvn clean installを使用してプロジェクトを簡単にビルドできるようになりました。ここでは珍しいことではありません。

そして、次のコマンドで実行します:java -jar <artifact-name> –非常にシンプルで直感的。

適切なプロセス管理はこの記事の範囲を超えていますが、サーバーからログオフした場合でもプロセスを実行し続ける簡単な方法の1つは、nohupコマンドを使用することです。nohup java -jar <artifact-name>.

cntrl+cまたはkill <pid>.のどちらを使用する場合でも、spring-bootプロジェクトを停止することは、通常のプロセスを停止することと同じです。

3. ファットジャー/ファットウォー

舞台裏では、spring-bootは、プロジェクトクラスと一緒に最終アーティファクト内のすべてのプロジェクト依存関係をパッケージ化します(したがって、「ファット」jar)。 組み込みTomcatサーバーも組み込まれています。

したがって、結果のアーティファクトは完全に自己完結型であり、標準のUnixツール(scp、sftpなど)を使用して簡単に展開でき、JVMを備えた任意のサーバーで実行できます。

デフォルトでは、Bootはjarファイルを作成しますが、pom.xmlpackagingプロパティをwarに変更すると、Mavenは代わりに自然にbuild a warになります。

もちろん、これはスタンドアロンとして実行可能であり、Webコンテナにデプロイされます。

4. さらなる構成

ほとんどの場合、追加の構成は必要なく、すべてが「正常に機能」しますが、特定の場合には、spring-bootにメインクラスが何であるかを明示的に伝える必要があります。 それを行う1つの方法は、プロパティを追加することです。


    org.example.boot.Application

notがspring-boot-starter-parentを継承している場合は、mavenプラグインでそれを行う必要があります。


    org.springframework.boot
    spring-boot-maven-plugin
    2.0.1.RELEASE
    
        org.example.boot.Application
        ZIP
    

まれに、mavenにいくつかの依存関係をunpackに指示する必要がある場合があるもう1つのことは次のとおりです。


    org.springframework.boot
    spring-boot-maven-plugin
    
        
            
                org.jruby
                jruby-complete
            
        
    

5. 結論

この記事では、spring-boot.によって構築された「ファット」jarを使用したサーバーレスデプロイメントについて説明しました。

いつものように、この記事のコードはすべて利用可能なover on Githubです。