1. 程式人生 > >idea部署springBoot專案到本地tomcat

idea部署springBoot專案到本地tomcat

由於把專案部署到tomcat的前提是有artifacts,所以我們先建立artifacts。

1.建立artifacts

idea:File-->Project Structure,選擇左邊的artifacts,

在點選"加號"的彈出窗中選擇 "web application:Exploded"  下面的 from Modules選擇想要部署的專案就可以了。

2.修改打包方式

在pom.xml裡設定 <packaging>war</packaging>

3.移除嵌入式的tomcat外掛

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--排除springBoot預設的logBack依賴包-->
            <!--題外話:真正引入spring-boot-starter-logging包的是spring-boot-starter依賴,所以                        我們也可以直接在spring-boot-starter下排除即可-->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
                <!--移除tomcat外掛,將專案部署到本地tomcat-->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

4.新增servlet-api的依賴 

        <!--第一種 將專案部署到本地tomcat-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <!--第二種 將專案部署到本地tomcat-->
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-servlet-api</artifactId>
            <version>8.0.36</version>
            <scope>provided</scope>
        </dependency>

5.修改啟動類,重寫初始化方法 

@SpringBootApplication
public class SpringbootdemoApplication{
   public static void main(String[] args) {
        SpringApplication.run(SpringbootdemoApplication.class, args);
        LOGGER.info("SpringBoot啟動成功...");
       }
}

使用類似web.xml的配置方式來啟動spring上下文,在Application類的同級新增一個SpringBootStartApplication類

public class SpringBootStartApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {

        // 注意這裡要指向原先用main方法執行的Application啟動類 
        return builder.sources(SpringbootdemoApplication.class);
    }
}

可以通過在pom檔案的build標籤下,新增<finalName>project_name</finalName>指定打包之後專案名稱,預設打包名稱與專案名稱一致。

參考連結:https://blog.csdn.net/liyongbing1122/article/details/79204026