架构:
微服务springboot架构,maven管理依赖的jar
项目结构:
根 | model层 | 说明 |
gateway | restful | |
api | ||
event | ||
facade | ||
domain | ||
infrastructure | 基础实施层 | |
bootstrap | 启动model |
背景:
想访问一个公共平台的接口,根据自己的权限申请了一个sdk开发包。因为是特殊定制的一个jar,所以不能把这个jar上传到公司的maven私服服务器上,所以项目中只能引入这个jar。
实现:
在基础实施层model的pom文件中引入本地jar包
<dependency>
<!--自定义配置groupId -->
<groupId>com.jd.*.*</groupId>
<!--自定义配置artifactId-->
<artifactId>*</artifactId>
<!--自定义配置version-->
<version>2.0</version>
<!--固定写成:system-->
<scope>system</scope>
<!--jar包放在项目中的位置-->
<systemPath>${project.basedir}/src/main/resources/lib/a.jar</systemPath>
</dependency>
问题:
本地idea启动项目可以正常访问jar包中的内容,但是当把项目部署到服务器的时候,启动项目会报错,提示jar无法找到。
解决:
找到启动整体项目的微服务model(bootstrap),然后在pom文件中增加属性
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.2.RELEASE</version>
<configuration>
<!--主要是这个配置,添加includeSystemScope配置-->
<includeSystemScope>true</includeSystemScope>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
项目启动正常!!!