背景
本地 Jar 包打包进项目时,要么在 IDEA 运行不起来命令运行可以,要么 IDEA 运行可以命令运行不起来(找不到 Jar 包,其实是没打进去或者没打对位置)
解决方案
方法一: lib 放在 resources 文件夹下(需要设置排除 lib 文件夹,不然会打包两份本地 Jar 包进项目 Jar 包)
<dependencies>
<dependency>
<groupId>com.xxx</groupId>
<artifactId>sdk-java</artifactId>
<version>{sdk.version}</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/lib/sdk-java.jar</systemPath>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>lib/**</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
</resource>
</resources>
</build>
方法二: lib 和 resources 放在同级目录(不需要排除)
<dependencies>
<dependency>
<groupId>com.xxx</groupId>
<artifactId>sdk-java</artifactId>
<version>{sdk.version}</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/lib/sdk-java.jar</systemPath>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
</resource>
</resources>
</build>
补充: 使用上面方案仍然没有把本地包打进项目包的处理方案
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>