1. 程式人生 > >SpringBoot2.0 webScoket 打包war 新增第三方jar包

SpringBoot2.0 webScoket 打包war 新增第三方jar包

這幾天打包(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配置方法可以在百度上找到。


最後有什麼問題歡迎提出,我也是在學習中的“土木工程”