• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Springboot打成war包,maven引入外部jar包

java 来源:胖朱丶悟空丨孙 24次浏览

工作需求完成二维码的功能,我现在把工具类搬迁到自己的项目中,但是开发工具和项目环境不一样。自己项目是idea中打成war包的springboot的项目。公司的是传统的spring项目,非maven管理。在搬迁工具类时遇到了问题,将工作中的工具类按照idea传统的方式添加jar包,但是却没有添加到项目编译的war中。然后项目启动之后,一直报错———java.lang.ClassNotFoundException。下面就演示下我自己怎么解决这个问题的。

1.项目下创建lib的文件夹,将相应需要导入的本地jar包放入:

      

2.使用maven添加这些jar包,运行之后,这些jar包就会被导入了,但是只是却没有引入到编译的war文件中,直接运行项目,在访问相对应的请求,即代码中使用了相关的jar包的内容,就会报错:

<dependency>
   <groupId>qrcode-1.0</groupId>
   <artifactId>qrcode-1.0</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <scope>system</scope>
   <systemPath>
      ${project.basedir}/lib/qrcode-1.0.jar
   </systemPath>
</dependency>

<!--<dependency>-->  <!--<groupId>gson-2.2.4</groupId>-->  <!--<artifactId>gson-2.2.4</artifactId>-->  <!--<version>0.0.1-SNAPSHOT</version>-->  <!--<scope>system</scope>-->  <!--<systemPath>-->  <!--${project.basedir}/src/main/resources/lib/gson-2.2.4.jar-->  <!--</systemPath>--> <!--</dependency>-->  <dependency>
   <groupId>zxing-2.2</groupId>
   <artifactId>zxing-2.2</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <scope>system</scope>
   <systemPath>
      ${project.basedir}/lib/zxing-2.2.jar
   </systemPath>
</dependency>

3.将对应的jar包引入到编译的war文件下WEB-INF中lib中,这边是借助了maven,在maven打成war的代码中添加这些个代码(红色):

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-war-plugin</artifactId>
   <configuration>
      <failOnMissingWebXml>false</failOnMissingWebXml>
      <webResources>
         <resource>
            <directory>lib</directory>
            <targetPath>WEB-INF/lib/</targetPath>
            <includes>
               <include>**/*.jar</include>
            </includes>
         </resource>
      </webResources>
   </configuration>
</plugin>

4.操作maven进行clean->install-package,也可以用idea字典的编译war包:

到这边就已经解决了war包编译中,添加本地jar包的实例。

后续再学习maven编译成jar包的操作。主要自己没有用过编译jar包。。。。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)