spring boot項目打成war包部署到tomcat


實例項目共三個模塊:

m1

m2

package

 

 

 

其中package依賴m1和m2,將m1和m2編譯生成的jar包一起打成一個war包。

springboot項目打成war包部署到tomcat時需要改變啟動方式,否則運行tomcat時war包只會解壓,但是加載不了

package的Application.java文件內容:

 1 import org.springframework.boot.SpringApplication;
 2 import org.springframework.boot.autoconfigure.SpringBootApplication;
 3 import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
 4 import org.springframework.boot.builder.SpringApplicationBuilder;
 5 
 6 
 7 @SpringBootApplication
 8 public class Application extends SpringBootServletInitializer {
 9     
10     public static void main(String[] args) {
11         
12         SpringApplication.run(Application.class, args);
13     }
14     
15     @Override
16       protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
17         return builder.sources(Application.class);
18       }
19 
20 }
View Code

package的pom.xml文件內容:

 1 <?xml version="1.0"?>
 2 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 4   <modelVersion>4.0.0</modelVersion>
 5   <parent>
 6     <groupId>com.trx.spb</groupId>
 7     <artifactId>fnc</artifactId>
 8     <version>0.0.1</version>
 9   </parent>
10   <artifactId>package</artifactId>
11   <name>package</name>
12   <url>http://maven.apache.org</url>
13   <packaging>war</packaging>
14   <properties>
15     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
16   </properties>
17   <dependencies>
18         <dependency>
19             <groupId>org.springframework.boot</groupId>
20             <artifactId>spring-boot-starter-web</artifactId>
21             <!-- 去除tomcat插件引用 -->
22             <exclusions>
23                 <exclusion>
24                     <groupId>org.springframework.boot</groupId>
25                     <artifactId>spring-boot-starter-tomcat</artifactId>
26                 </exclusion>
27             </exclusions>
28         </dependency>
29         <!-- 設置tomcatjar包的打包域,使war包運行時不與weblogic沖突 -->
30         <dependency>
31             <groupId>org.springframework.boot</groupId>
32             <artifactId>spring-boot-starter-tomcat</artifactId>
33             <scope>provided</scope>
34         </dependency>
35         <dependency>
36             <groupId>com.trx.fnc</groupId>
37             <artifactId>m1</artifactId>
38             <version>0.0.1</version>
39         </dependency>
40         <dependency>
41             <groupId>com.trx.fnc</groupId>
42             <artifactId>m2</artifactId>
43             <version>0.0.1</version>
44         </dependency>
45         <!-- lombok 實體類get、set等方法自動生成器 -->
46         <dependency>
47             <groupId>org.projectlombok</groupId>
48             <artifactId>lombok</artifactId>
49             <scope>provided</scope>
50         </dependency>
51     </dependencies>
52     
53     <build>
54     <plugins>
55         <plugin>
56                 <artifactId>maven-war-plugin</artifactId>
57                 <version>2.6</version>
58                 <configuration>
59                     <!--如果想在沒有web.xml文件的情況下構建WAR,請設置為false。-->
60                     <failOnMissingWebXml>false</failOnMissingWebXml>
61                 </configuration>
62             </plugin>
63     </plugins>
64 </build>
65 </project>
View Code

package的pom.xml有幾項特殊點:

1.去除springboot 內嵌的tomcat模塊

2.需要使用 maven-war-plugin插件打包,且將failOnMissingWebXml配置項設置為false,要不然提示項目無web.xml文件的錯誤。

 

注:

1、使用maven-war-plugin3.0.0,解決了web.xml不存在無法構建war的問題

2、繼續使用maven-war-plugin2.6,添加設置failOnMissingWebXml=false

 

package生成的war包(假設文件名為package.war)部署到tomcat (版本:8.5)后,訪問地址http://localhost:8080/package/@RequestMapping路徑。

package項目中application.properties文件中的server.port、server.context-path等配置不再起作用。

鏈接:https://pan.baidu.com/s/1IaPpRD-0Wjil9PhQhk-wJQ
提取碼:00za


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM