springboot專案war包部署並去除專案名訪問
springboot專案war包部署並去除專案名訪問
springboot專案jar包部署請見:https://blog.csdn.net/rico_zhou/article/details/81283953
springboot內建了Tomcat,並且我們開發環境springboot啟動是可以不帶有專案名訪問的,近日有了這個需求,原本是jar包部署並註冊成服務,現在需要war包部署,以Windows下環境為例。
首先,將pom.xml中打包配置改成war
<!-- war包部署 -->
<packaging>war</packaging>
然後去除springboot中自帶的tomcat
<!-- SpringBoot Web容器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- war包部署移除嵌入式tomcat外掛 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>
再新增servlet依賴
<!-- war包部署新增servlet依賴 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
最後如圖:
接下來會出現報錯資訊如果你的專案中使用了Tomcat相關的依賴,如:
import org.apache.tomcat.util.http.fileupload.FileUploadBase.FileSizeLimitExceededException;
沒關係,不用管。接下來更改啟動類,繼承SpringBootServletInitializer ,覆蓋configure(),把啟動類Application註冊進去,如:
/**
* web容器中進行部署
*
* @author ricozhou
*/
public class RZSpiderServletInitializer extends SpringBootServletInitializer
{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
{
return application.sources(RZSpiderApplication.class);
}
}
接下來不再需要更改內容,根目錄下(即src和pom.xml同級目錄)執行:mvn clean package
mvn clean package
打包結束後即可在target資料夾中找到war包,或者在eclipse中右擊專案>Run as>Maven install打包結束同樣在target目錄下找到war
接下來開始部署,下載安裝Tomcat,或者解壓tomcat,將war包複製到apache-tomcat-9.0.5\webapps下,到bin目錄下雙擊startup.bat即可啟動,可看到webapps下有war包同名目錄生成,在瀏覽器輸入localhost:8080/專案名,即可訪問。
但是由於我之前是jar包部署,不想加專案名,否則需要更改好多資源路徑太麻煩,怎麼辦呢?
很簡單,將webapps目錄下的ROOT資料夾刪除,將自己的war包更名為ROOT.war,重新啟動tomcat,瀏覽器中輸入localhost:8080即可訪問