web-dev-qa-db-ja.com

EclipseでSpring:bootプロジェクトからwarファイルを作成する

私はSpring Bootにかなり慣れていないので、自分のローカルホストでうまく機能するアプリケーションを完成させました。私はローカルホストの外、たとえばwebbhotelやsimularにデプロイするように言われたので、プロジェクトをjarファイルではなくwarファイルとしてエクスポートする必要があります。

更新!!私は、Spring Initialzrで生成されたSpringprojectとしてプロジェクトを実行し、EclipseをIDEとして使用します。

Eclipseでは、次の手順に従いました

<packaging>war</packaging>

そして

<dependencies>
    <!-- … -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-Tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <!-- … -->
</dependencies>

spring Bootリファレンスページから https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable-war-file

私のプロジェクトでは

<dependency>
        <groupId>org.Apache.Tomcat.embed</groupId>
        <artifactId>Tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>

私の依存関係がこのようになるように、sprinng-boot-starter-Tomcat依存関係を追加し、それにTomcat-embed-jasperと同様に提供する必要がありますか?

<dependency>
        <groupId>org.Apache.Tomcat.embed</groupId>
        <artifactId>Tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
     <dependency>
    <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-Tomcat</artifactId>
        <scope>provided</scope>
    </dependency>

Eclipseでwarファイルにエクスポートしようとすると、Eclipseでプロジェクトが見つかりません。 Java> JAR FILEをエクスポートしようとしても、Web> WAR FILEを試してみても見つかりません。

私が間違っていることを誰かが知っていますか?外部サーバーにデプロイするためにWARファイルにエクスポートする必要があるかどうか?

8
bajen micke

@SpringBootApplicationで**** SpringBootServletInitializer ****を拡張する必要があります

Warファイルを生成するために**** sprinng-boot-starter-Tomcat ****依存関係を追加する必要はありません

enter image description here

以下の設定をpom.xmlで使用します

<packaging>war</packaging>

プロジェクトのビルドパスを構成し、JDKを選択します

プロジェクトを右クリック>実行> Mavenインストール

ターゲットフォルダ内にwarファイルが生成されます。

enter image description here

このwarをコピーして、任意のWeb /アプリケーションサーバーにデプロイします(名前をdemo.warに変更しました)。

アプリにアクセスするには、ホスト名に続けてポートとアプリ名を使用します。

enter image description here

14
Neeraj Benjwal

STS(Spring Tools Suite)でWARファイルを生成するには、次のように実行します-> Mavenインストール

0

スプリングブートプロジェクトをwarファイルとしてデプロイする場合は、次の3つの手順を実行する必要があります。

  1. SpringBootServletInitializerを拡張します

    @SpringBootApplication
    public class DemoApplication extends SpringBootServletInitializer {
    
    public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
    }
    
    
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    return builder.sources(DemoApplication.class);
    }
    }
    

    複数のメインクラスを使用している場合は、スタートアップクラスを定義します。

    <start-class>com.javavogue.DemoApplication</start-class>
    
    1. War pom.xmlへのパッケージの更新

       packaging war packaging
      
    2. 提供されているように、埋め込みサーブレットコンテナにマークを付けました。 pomファイル内。

      参照: TomcatサーバーへのSpring Boot WARのデプロイ

0
Anuj Dhiman