工作需求完成二维码的功能,我现在把工具类搬迁到自己的项目中,但是开发工具和项目环境不一样。自己项目是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包。。。。