springboot加载外部依赖并在构建包时将其打入相应的目录下
当我们在maven仓库中无法找到需要的依赖时,需要将相应的依赖jar包下载下来放到项目的某个目录下,然后通过配置文件配置将其引入项目中使用。如下引入sigar依赖:具体下载地址
1、依赖具体目录如下:
2、pom.xml配置:
<dependency> <groupId>org.hypericgroupId> <artifactId>sigarartifactId> <scope>systemscope> <version>1.6.4version> <systemPath>${project.basedir}/libs/sigar.jarsystemPath> dependency>
maven构建打包插件配置将Scope为system的依赖加入构建包中:
<plugin> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-maven-pluginartifactId> <configuration>true configuration> plugin>
或者配置resources进行配置将外部依赖jar放入BOOT-INF/lib/目录下
<resources> <resource>libs <targetPath>BOOT-INF/lib/targetPath> <includes> <include>**/*.jarinclude> includes> resource> <resource> <directory>src/main/resourcesdirectory> <targetPath>BOOT-INF/classes/targetPath> resource> resources>
这样在构建好的包中就能将sigar.jar打入构建包中:
这个场景对于少数本地jar依赖添加处理还行,如果lib下有很多jar需要添加处理,显然不是很方便,此时可以在插件maven-compiler-plugin中进行配置编译参数
<plugin> <artifactId>maven-compiler-pluginartifactId> <configuration> <source>1.8source> <target>1.8target> <encoding>UTF-8encoding> <compilerArguments> <verbose /> <bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar;${java.home}/lib/jsse.jarbootclasspath>${project.basedir}/libs compilerArguments> configuration> plugin>