这几天打包(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配置方法可以在百度上找到。
最后有什么问题欢迎提出,我也是在学习中的“土木工程”