springboot解决第三⽅依赖jar包的问题
maven打包本地jar包公司现在⽤的是springboot+maven,想要把⼀些⽼的项⽬都改成这种框架。但是⼀些⽼的项⽬中有好多第三⽅的jar包或者是⾃⼰的jar
包,maven库上没有。最初的解决⽅案是⼀个个的deploy到maven库上,但是遇到太多的三⽅jar包就太费事了。⽹上查了⼀下发现maven有⼀种⽅式可以将本地的Jar包依赖到项⽬中⽽不需要先deploy到maven库上。具体做法如下:
跟普通的java项⽬⼀样,新建个lib⽬录放jar包,我建在了src下。
pom⽂件中依赖这样写:
1 <!--添加外部依赖-->
2 <dependency>
3 <groupId>Ice</groupId>
4 <artifactId>Ice</artifactId>
5 <version>1.0</version>
6 <scope>system</scope>
7 <systemPath>${basedir}/src/lib/Ice.jar</systemPath>
8 </dependency>
basedir是⾃带变量,指的是当前项⽬的绝对路径,三围⾃⼰随便写。
通过这种⽅式引⼊依赖后,在编码的时候没有问题,但是⽤mvn clean package打成jar包后运⾏就是报错,正式不到这些jar包中的相关类。把jar包解压后在BOOT-INF/lib⾥⾯也确实没有发现⽤上述⽅式引⼊的jar包,看来是没有把src/lib⽬录⾥⾯的jar打进去,后来通过查也终于到⽅法了,修改pom⽂件,在build标签下增加如下配置:
1 <resources>
2 <resource>
3 <directory>src/lib</directory>
4 <targetPath>BOOT-INF/lib/</targetPath>
5 <includes>
6 <include>**/*.jar</include>
7 </includes>
8 </resource>
9 <resource>
10 <directory>src/main/resources</directory>
11 <targetPath>BOOT-INF/classes/</targetPath>
12 </resource>
13 </resources>
⽬的就是把src/lib下的jar打到BOOT-INF/lib下,但是必须要增加第⼆个resource,不然src/main/resources下的配置⽂件⼜打不进jar包了。
如果要打成war包,则pom⽂件需要这样改:
1 <!--设置maven-war-plugins插件,否则外部依赖⽆法打进war包-->
2 <plugin>
3 <groupId>org.apache.maven.plugins</groupId>
4 <artifactId>maven-war-plugin</artifactId>
5 <configuration>
6 <webResources>
7 <resource>
8 <directory>lib</directory>
9 <targetPath>WEB-INF/lib/</targetPath>
10 <includes>
11 <include>**/*.jar</include>
12 </includes>
13 </resource>
14 </webResources>
15 </configuration>
16 </plugin>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论