spring boot maven 打包本地jar

  • Post author:
  • Post category:其他


场景

有时候我们需要引入本地jar包,同样也需要打进war包里面去。

分析

引入本地jar可以这样做:

 <dependency>
   <groupId>jbarcode</groupId>
   <artifactId>jbarcode</artifactId>
   <version>0.2.8</version>
   <scope>system</scope>
   <systemPath>${pom.basedir}/src/main/resources/lib/jbarcode-0.2.8.jar</systemPath>
  </dependency>

之后要导入到war包中,spring boot有两种方式去解决这个问题。

解决方法

方法一:

在maven的pom.xml中加入如下plugin

  <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
            <includeSystemScope>true</includeSystemScope>
      </configuration>
   </plugin>

或许你已经有这个plugin,请注意添加

includeSystemScope

这个节点。

注意事项:

本地jar包会发布到

lib-provided

中,如果单独部署tomcat,还是会报

class not found

异常,本方法只适用于

java -jar

命令运行 war 文件的方式。

方法二:

在maven的pom.xml中加入如下plugin(原封不动复制进去即可)

 <plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-dependency-plugin</artifactId>
     <version>2.10</version>
     <executions>
         <execution>
             <id>copy-dependencies</id>
             <phase>compile</phase>
             <goals>
                 <goal>copy-dependencies</goal>
             </goals>
             <configuration>
                   <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</outputDirectory>
                   <includeScope>system</includeScope>
             </configuration>
         </execution>
     </executions>
 </plugin>  

这种方式会把本地jar打包到lib文件夹中。

参考文章:

点我



版权声明:本文为qq_26665787原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。