私は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ファイルにエクスポートする必要があるかどうか?
@SpringBootApplicationで**** SpringBootServletInitializer ****を拡張する必要があります
Warファイルを生成するために**** sprinng-boot-starter-Tomcat ****依存関係を追加する必要はありません
以下の設定をpom.xmlで使用します
<packaging>war</packaging>
プロジェクトのビルドパスを構成し、JDKを選択します
プロジェクトを右クリック>実行> Mavenインストール
ターゲットフォルダ内にwarファイルが生成されます。
このwarをコピーして、任意のWeb /アプリケーションサーバーにデプロイします(名前をdemo.warに変更しました)。
アプリにアクセスするには、ホスト名に続けてポートとアプリ名を使用します。
STS(Spring Tools Suite)でWARファイルを生成するには、次のように実行します-> Mavenインストール
スプリングブートプロジェクトをwarファイルとしてデプロイする場合は、次の3つの手順を実行する必要があります。
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>
War pom.xmlへのパッケージの更新
packaging war packaging
提供されているように、埋め込みサーブレットコンテナにマークを付けました。 pomファイル内。