您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

Spring Boot 手动添加依赖包并以war包部署至tomcat

背景:当前工程是Spring Boot 项目,需要与第三方(吉大正元)集成。由于第三方jar中读取配置文件用的是ctx.getResourceAsStream(spConfig)导致其只能读取相对于web路径的文件。也考虑过继承该类重写init方法中InputStream对象生成的方式,但由于init方法中涉及到部分default修饰的类,致使此方式失败。故转而考虑war包方式。
在这里插入图片描述
spring boot 版本 1.5.21.RELEASE
项目结构
在这里插入图片描述

  1. 在resources目录下创建文件夹lib,右键菜单中选择 Add as Library…
  2. 将第三方jar拷入lib目录下
  3. 修改pom.xml中的packaging属性值为war
  4. 覆盖spring boot内嵌的web容器
		<!-- 覆盖spring boot 内嵌的web容器,默认是tomcat -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>
  1. 引入第三方依赖
		<!--按如下方式引入每一个第三方的jar包,其中${project.basedir}指当前项目的根目录-->
		<dependency>
			<groupId>com.bcprov.jdk13</groupId>
			<artifactId>bcprov.jdk13</artifactId>
			<scope>system</scope>
			<version>143</version>
			<systemPath>${project.basedir}/src/main/resources/lib/bcprov-jdk13-143.jar</systemPath>
		</dependency>
  1. 配置打包插件
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<configuration>
					<!-- 检查web.xml是否存在 -->
					<failOnMissingWebXml>true</failOnMissingWebXml>
					<!--打包后的项目名-->
					<warName>spring-boot-war</warName>
					<webResources>
						<resource>
							<!--把本地lib里面的jar复制到lib-->
							<directory>src/main/resources/lib</directory>
							<targetPath>WEB-INF/lib/</targetPath>
							<includes>
								<include>**/*.jar</include>
							</includes>
						</resource>
					</webResources>
				</configuration>
			</plugin>
  1. application.properties中配置视图解析规则
spring.mvc.view.prefix=/WEB-INF/
spring.mvc.view.suffix=.jsp
  1. 创建SpringBootServletInitializer子类, SpringBootWarDemoApplication为@SpringBootApplication标记的类名
public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(SpringBootWarDemoApplication.class);
    }

}
  1. 在项目跟目录下执行打包命令
mvn clean package -Dmaven.test.skip=true
  1. 将生成的war拷贝至tomcat的webapps目录下,启动tomcat
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

参考资料:springboot引入系统本地jar,并成功打包war包


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进