Spring-boot--warパッケージの構築

3956 ワード

IDEAではデフォルトspring bootはjarパッケージとして構築され、内蔵コンテナを使用して実行されます.アプリケーションサーバに配備する場合は、アプリケーションを独立したjarまたはwarにパッケージする必要があります.サーバに配置します.1、pomファイルの修正
      ,  maven   war 
<packaging>warpackaging>

2、指定容器起動初期化類WARファイルにSpring MVC DispatcherServiceletが有効なwebがない.xmlファイルまたはサーブレット初期化クラスでは、このWARファイルは何の役にも立たない.Spring Bootが出馬しました.SpringBootServiceInitializerはSpring BootをサポートするSpringWebApplicationInitializer実装です.SpringのDispatcherServiceletの構成に加えて、SpringBootServiceletInitializerはSpringアプリケーションコンテキストでFilter、ServiceletまたはServiceletContextInitializerタイプのBeanを検索し、それらをServiceletコンテナにバインドします.SpringBootServiceletInitializerを使用するには、サブクラスを作成し、configure()メソッドを上書きしてSpring構成クラスを指定します.アプリケーションという起動クラスをSpringBootServiceletInitializerに直接継承できます
@SpringBootApplication
public class Application extends SpringBootServletInitializer {


    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(Application.class);
    }


    public static void main(String[] args) {
        SpringApplication.run(Application.class , args);
    }


}

3、この时に梱包できます.clean,compile,packageエラー:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project spring2: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1

はっきり言って、梱包してwebが見つからない.xmlファイルですがspring bootではこのプロファイルは必要ありません.理由はpomファイルにmavenパッケージプラグインを加えたからです.
<plugin>
    <groupId>org.apache.maven.pluginsgroupId>
    <artifactId>maven-war-pluginartifactId>
    <version>2.1.1version>
    <configuration>
        <failOnMissingWebXml>falsefailOnMissingWebXml>
    configuration>
plugin>

プラグインmaven-war-plugin 3.0の前に、failOnMissingWebXmlの構成をfalseに設定する必要があります.つまり、webは必要ありません.xmlもパッケージ化されます.しかし3.0バージョンでは、この場所を自動的にスキップすることができ、強制的に要求することはなく、構成が完了したら、もう一度packageを行います.targetディレクトリの下に必要なwarパッケージが見つかります.
spring boot      war ,    IDEA     ,         ,      。