SpringBoot2.0 webScoket 打包war 新增第三方jar包
阿新 • • 發佈:2018-11-10
這幾天打包(war)了一個用SpringBoot寫的一個專案,在打包中有幾個地方要注意一下的:
(1)修改jar包為war包:pom檔案中修改
<packaging>war</packaging>
<!--<packaging>jar</packaging>-->
(2)打包的時候需要移除SpringBoot內建的Tomcat容器:
解決方法:修改pom中的
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> <!-- 打包時新增scope 移除內建Tomcat容器 --> </dependency>
在本地執行時再把scope註釋掉
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!-- <scope>provided</scope> -->
</dependency>
(3)重點:在專案有時候要用到jar(但是能用maven的倉庫儘量用,好處的話就不多說了),如果專案中用到第三方的jar包解決辦法:一樣修改pom中的build,在plugins標籤中新增plugin
<!-- 打包本地libs --><plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <webResources> <resource> <directory>libs</directory> <!-- 資料夾名稱 --> <targetPath>WEB-INF/lib/</targetPath> <includes> <include>**/*.jar</include> </includes> </resource> </webResources> </configuration> </plugin>
這裡要注意紅色標記的地方 libs是存放jar包的資料夾 如果放在與src同級的位置可以直接把libs替換成你的資料夾名稱
如果存放jar包的資料夾在src/main/resources/裡面的話要把路勁加上去:即把紅色標記的地方改為
src/main/resources/libs <!-- libs是jar所在資料夾名稱 -->
(4)重點:如果在專案中有用到webSocket通訊,在我們打完包後執行會包webSocketConfig(配置類) 的連線地址連線不上的錯誤。
解決方法:WebSocketConfig類是新建的一個類,新增上@Configuration註解。
@Configuration
public class WebSocketConfig {
/**
* 本地執行 添加註解@Bean
* @return
*/
//@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
}
在打包時把@Bean註解註釋掉。在本地執行時在加上@Bean註解
WebSocket配置方法可以在百度上找到。
最後有什麼問題歡迎提出,我也是在學習中的“土木工程”