Java + SpringBoot + Maven + 外部jar打包
1 个月前
- 背景
一般开发的工程里面需要的依赖都可以在maven仓库上找到,但有时候需要引入一些外部的jar包到工程,通常会在工程根目录下建一个lib目录,然后添加到工程依赖。
springboot-project-demo
|-- lib (在里面存放外部的jar包)
|-- src
|-- pom.xml
当进行maven package打包时,lib目录中的jar并不会被拷贝至[最终jar下的BOOT-INF/lib 目录中],启动运行程序时会报类不存在的错误。
- 解决方法
- 首先在pom.xml的dependencies节点中下添加目标jar包的依赖。
<dependency>
<groupId>cn.little-whale</groupId>
<artifactId>maven-package-lib-demo</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/(需本地引入目标jar包).jar</systemPath>
</dependency>
2. 在pom.xml build标签节点下,配置打包加载资源的目录。
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>
<includes>
<include>*.jar</include>
</includes>
</resource>
</resources>
pom.xml参考
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>lib</directory>
<targetPath>BOOT-INF/lib/</targetPath>