IDEA下spring boot專案打包war包部署外部tomcat問題
阿新 • • 發佈:2019-01-05
最近需要把開發的spring boot專案打包部署到雲伺服器上,自己先把專案部署到本地的tomcat上執行,結果發現怎麼部署都會報錯。現在特別整理了所有部署流程。以幫助大家解決問題。
前提是你得保證你得spring boot專案在idea上能跑起來,並且訪問到伺服器,下面直接重點。
第一步,修改配置pom.xml檔案
<packaging>war</packaging> <!-- 網上有些說把war改成jar,個人嘗試過,這個不用改 -->
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <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> <!-- 移除之後會報錯,加入下面的依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
<build> <finalName>wxxm</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> <mainClass>com.sc.wxxm.WxxmApplication</mainClass><!-- 專案執行main方法的全路徑 --> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> <compilerArguments> <extdirs>${project.basedir}/src/main/resources/lib</extdirs><!-- maven無法匯入的依賴,我自己建的lib包 --> </compilerArguments> </configuration> </plugin> </plugins> <resources> <resource> <directory>${basedir}/src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>${basedir}/src/main/resources</directory> <includes> <include>**/**</include> </includes> <filtering>false</filtering> </resource> </resources> </build>
第二步,修改啟動類,啟動類繼承SpringBootServletInitializer類,重寫configure方法
第三步,使用 idea下的命令列操作打包xxxx.war,輸入命令 mvn clean package@SpringBootApplication @EnableAutoConfiguration public class WxxmApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(WxxmApplication.class); } public static void main(String[] args) { SpringApplication.run(WxxmApplication.class, args); } }
出現以下內容 打包完成
第四步,在本地開啟tomcat下的webapps,將war包複製到該資料夾下,進入tomcat/bin目錄開啟命令列,
輸入命令 startup ,
出現以下內容啟動成功。
第五步,訪問tomcat自帶配置的埠號即可訪問專案localhost:8080/xxxx/....。
另外如需修改tomcat埠號,參見另一篇文章修改tomcat埠號
這是我所遇到的問題以及解決辦法,希望也能適用於你,喜歡就點個贊,謝謝啦。