zoukankan      html  css  js  c++  java
  • springboot解决第三方依赖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>
  • 相关阅读:
    打开安装 好的Microsoft Dynamics CRM 4.0 报错误为 Caller does not have enough privilege to set CallerOriginToken to the specified value 的解决办法
    基于 Windows Server 2008 的计算机对 Microsoft Dynamics CRM 4.0 的支持
    Microsoft Dynamics CRM 4.0 如何添加自定义按钮
    Microsoft Dynamics CRM 4.0 Plugin 取值,赋值,查询
    C# 中的 enum(枚举) 类型使用例子
    vue事件的绑定
    表单验证2
    node中模块
    node模块的引入
    node中的读文件
  • 原文地址:https://www.cnblogs.com/xiaosiyuan/p/6894766.html
Copyright © 2011-2022 走看看