idea部署springBoot專案到本地tomcat
阿新 • • 發佈:2018-12-20
由於把專案部署到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