web-dev-qa-db-ja.com

Spring Bootのjarとwarの違いは?

Spring Bootを使用してSpring FrameworkでJavaで最初のWebサイトを構築しようとしています。jarで構築する方がはるかに簡単ですが、それについていくつか質問があります。

一般的な違いは何ですか?

jarファイルではビューは/resources/templatesの下にありますが、warファイルでは/webapp/WEB-INF/の下にあります。

違いは何ですか?オンラインホストにjarをデプロイできますか?

17
Hama Saadwn

Spring Bootは、モジュール/サービスのすべての依存関係を含む「脂肪JAR」を生成するように指示され、 Java -jar <your jar> 。 「Mavenで実行可能JARを作成する」 here を参照してください。

Spring Bootは WARファイルを生成する に指示することもできます。この場合、TomcatやJettyなどのWebコンテナに展開することを選択する可能性があります。

Spring Bootの展開についての詳細はこちら こちら

9
glytching

_spring-boot_アプリケーションをファットとして実行_*.jar_

組み込みアプリケーションコンテナ(デフォルトオプションとしてTomcat)を使用して実行可能な_fat JAR_ファイルである、いわゆる_*.jar_をビルドすることができます。さまざまなビルドシステム用の_spring-boot_プラグインがあります。 mavenの場合: spring-boot-maven-plugin

fat _*.jar_の種類を実行するには、次のコマンドを簡単に実行できます。

_Java -jar *.jar
_

または_spring-boot-maven_ゴールを使用:

_mvn spring-boot:run
_

_spring-boot_アーカイブとして_*.war_アプリケーションを構築する

もう1つのオプションは、アプリケーションを旧式のwarファイルとして出荷することです。あらゆるサーブレットコンテナに展開できます。手順を順を追って説明します。

  1. packagingwarに変更します(Mavenの_pom.xml_について話します)
  2. SpringBootServletInitializerからメイン_spring-boot_アプリケーションクラスを継承し、SpringApplicationBuilder configure(SpringApplicationBuilder)メソッドをオーバーライドします( javadoc を参照)
  3. _spring-boot-starter-Tomcat_のscopeprovidedとして設定してください

スプリングブートドキュメントの詳細

6
rilaby

展開に依存します。既存のJava EE Application Server(たとえばTomcat))にアプリケーションをデプロイする場合、標準的なアプローチはwarビルドを実行することです。

ファットjarアプローチを使用すると、アプリケーションはスプリングブートによって提供される組み込みアプリケーションコンテナーにデプロイされます。詳細については、 Spring Bootアプリケーションのデプロイ を実行してください。

4
lazyneuron

ローカルでjarの問題を無料で展開したとき、私は同じ問題に直面していました。その後、サーバー上でデモする必要がありました。 pom.xmlタグを変更することにより、warファイルを作成できます

<packaging>jar</packaging>

<packaging>war</packaging>

ターゲットにwarファイルがあり、サーバーにデプロイできます(Tomcatは私の場合)

2
Groot