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小时内删除。