赞
踩
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>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。