Maven项目打包时需要提取引用Jar包的文件

项目场景:

SpringBoot微服务项目,A服务引入B服务的SDK,A服务需要调用B服务的方法,而B服务需要调用自己resource目录下的文件。


问题描述:

A服务打成镜像后,在调用A服务的接口(需要调用B服务的的方法读取文件)时系统报错,抛出找不到文件路径的异常。


原因分析:

A服务引入B服务,所以A服务的镜像下,B服务是以一个jar包的形式存在,所以项目启动的时候,在当前目录下找B服务目录下的文件是找不到的,所以系统会抛出异常。


解决方案:

增加打包的依赖,A服务打包的时候,需要从jar包中将B服务的文件拷贝到当前的路径下,然后启动A服务的时候可以通过添加启动参数的方式,来指定文件目录,从而使A服务可以读取到对应的文件。
maven具体配置如下:

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-resources-plugin</artifactId>
	<version>2.6</version>
	<executions>
		<execution>
			<!-- 这个Key不需要改,是Maven中的命令 -->
			<id>copy-resources</id>
			<!-- 在default生命周期的validate阶段就执行resources插件的copy-resources目标 -->
			<phase>validate</phase>
			<goals>
				<goal>copy-resources</goal>
			</goals>
			<configuration>
				<!-- 指定resources插件处理资源文件复制到哪个目录下 -->
				<outputDirectory>${project.build.directory}/config</outputDirectory>
				 <!-- 待处理的资源定义 -->
				<resources>
					<resource>
					 	<!-- 指定resources插件处理哪个目录下的资源文件 -->
						<directory>B服务对应的文件目录</directory>
 						<excludes>
 							<!-- 这里需要注意下下面填写的是需要排除的哪些文件 -->
							<exclude>mappers/*.*</exclude>
						</excludes>
                         <filtering>false</filtering>
                     </resource>
				</resources>
			</configuration>
		</execution>
	</executions>
 </plugin>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值