解決Intellij IDEA覆蓋tomcat配置的問題
剛剛遇到bug,每次修改自己環(huán)境里tomcat的server.xml,再次在Intellij里啟動tomcat之后,修改就消失了,心態(tài)很炸裂hhh
研究了好久,最終把目光放在了下圖所示的地方。

一開始以為是自己環(huán)境變量沒配,但是看了一下發(fā)現(xiàn)沒問題,又在cmd里試著運行了一遍,發(fā)現(xiàn)CATALINA_BASE跟上圖里的不一樣,查了一些資料后判斷是是intellij自動用自己tomcat里的conf把我tomcat里的給override了。
找到原因就很容易解決了,像圖里這樣告訴Intellij,誰才是能配置CATALINA_BASE的人就行啦~

這么看來Intellij也有點算易學難精,環(huán)境配置還是個大坑啊。
補充知識:IntelliJ IDEA SpringBoot 使用第三方Tomcat以及部署
一、第三方Tomcat部署
目標:把spring-boot項目按照平常的web項目一樣發(fā)布到tomcat容器下
1. 修改打包形式
在pom.xml里設置 <packaging>war</packaging>
<groupId>com.study</groupId> <artifactId>test</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging>
2. 移除嵌入式tomcat插件
在pom.xml里找到spring-boot-starter-web依賴節(jié)點,在其中添加如下代碼:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
3. 添加servlet-api的依賴
下面兩種方式都可以,任選其一
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-servlet-api</artifactId> <version>8.0.36</version> <scope>provided</scope> </dependency>
4. 修改啟動類,并重寫初始化方法
我們平常用main方法啟動的方式,都有一個App的啟動類,代碼如下:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
直接讓啟動類繼承SpringBootServletInitializer,并覆蓋configure()方法:
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意這里要指向原先用main方法執(zhí)行的Application啟動類
return builder.sources(Application.class);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
5. 打包部署
IDEA上方工具欄:Run->Edit Configurations
打開配置界面,左邊"+"號->Tomcat Server->Local
完成后如下所示
然后在Deployment中點擊"+"號,選擇client:war,這樣每次server啟動的時候都會去打包一次war包(個人理解),然后去運行war包。
然后保存就可以了,然后啟動項目就運行起來了。
到此這篇關于解決Intellij IDEA覆蓋tomcat配置的問題的文章就介紹到這了,更多相關IDEA覆蓋tomcat配置問題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring中ClassPathXmlApplicationContext類的使用詳解
這篇文章主要介紹了Spring中ClassPathXmlApplicationContext類的使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
解決springboot集成swagger碰到的坑(報404)
這篇文章主要介紹了解決springboot集成swagger碰到的坑(報404),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
@MapperScan掃描包里混有@Service等問題如何解決
這篇文章主要介紹了@MapperScan掃描包里混有@Service等問題如何解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
java工廠實例BeanFactoryPostProcessor和BeanPostProcessor區(qū)別分析
這篇文章主要為大家介紹了BeanFactoryPostProcessor和BeanPostProcessor區(qū)別示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
SpringBoot異步調(diào)用方法實現(xiàn)場景代碼實例
這篇文章主要介紹了SpringBoot異步調(diào)用方法實現(xiàn)場景代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-04-04
java8中的Collectors.groupingBy用法詳解
這篇文章主要介紹了java8中的Collectors.groupingBy用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03

