springboot打war包以后怎么使用maven瘦身,将jar包放入到指定目录中。war包可以放在tomcat下运行
直接用idea导出包就可以。
https://www.jb51.net/article/139235.htm希望对你有所帮助
可以将jar放到tomcat的bin目录下所有tomcate项目工程都可以使用该jar。maven引入的时候scope设置为compile
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
1 pom 配置
<!-- 单独解决打包问题 依赖不传递 START -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 打包war [2] 移除自带内置tomcat -->
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-tomcat</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!--打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude操作-->
<!--<scope>provided</scope>-->
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<!-- 屏蔽最新版本,不然会引起版本不一致的冲突 -->
<!-- <version>RELEASE</version>-->
</dependency>
<!-- 单独解决打包问题 依赖不传递 END -->
2 启动类
public class DemoApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DemoApplication .class, args);
}
/**
* 配置转义字符,解决当请求路径中特殊字符,高版本tomcat解析失败的问题
*
* tomcat 配置文件 org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true
*/
@Bean
public ServletWebServerFactory webServerFactory() {
TomcatServletWebServerFactory fa = new TomcatServletWebServerFactory();
fa.addConnectorCustomizers(connector -> {
connector.setProperty("relaxedQueryChars", "(),/:;<=>?@[\\]{}");
connector.setProperty("rejectIllegalHeader", "false");
});
return fa;
}
/**
* 解决打成war包 source的问题
* @param builder 构建器
* @return 结果
*/
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(SocietyApplication.class);
}