项目开发过程中,难免遇到需要引用私有jar的情况,此时应将该jar推送到私服仓库中。
但由于种种 “现实问题”:比如权限不足、时间不够、未搭建私服仓库等,于是就尝试将jar直接放入项目中进行集成。
步骤如下:
1、pom.xml 配置GAV,且 scope 值为 system,且systemPath 值为 jar 的路径。
<dependency>
<groupId>com.medex</groupId>
<artifactId>WebsocketClient-aoa</artifactId>
<version>2.2.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/WebsocketClient-aoa-2.2.1.jar</systemPath>
</dependency>
此时已经完成了 jar 的引用,但部署到容器运行时,又会提示找不到类,因为该jar未被注入到项目lib中,因此需要进行下一步的配置。
2、在pom文件中增加打包扫描的配置。
如果 项目打的是jar包,需要如下配置:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
如果项目打的是war包,打war包时,本地jar文件会默认打包在 \WEB-INF\lib-provided 下,需要增加如下配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<!-- 存放本地jar的文件夹 -->
<directory>${project.basedir}/lib</directory>
<!-- 目标lib目录 -->
<targetPath>WEB-INF/lib/</targetPath>
<includes>
<!-- 匹配所有jar包 -->
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
本文转载自 Maven项目引用本地jar涉及scope配置_includesystemscope-CSDN博客
为了防止原文丢失,故而原文拷贝。