Idea打包SpringBoot无法导出libs目录下的jar包
今天在idea打包SpringBoot项目时,发现导出的war部署到Tomcat出现找不到类的情况,what???关键是我idea直接运行的是没有问题的,怎么打个包就有问题了!!我就纳闷了,然后去看看webapps/{YourProject}/WEB-INF/lib目录下的jar包,发现没有包含这个类的jar包,这个jar是我手动导入的,在libs目录下,但是打包的时候没有一起打包出去!
原因
这是因为Iead打包时,会根据pom.xml的里的依赖,加载所需要的jar包,打包的时候,并不会加载libs里的文件
解决办法
你应该通过pom.xml导入的方法,来导入你的本地依赖,我这里以导入sqljdbc4.jar为例,先把jar包放入libs目录
1.打开Idea右侧maven面板,执行maven命令!
2. 执行maven命令生成本地依赖仓库
- Working directory ---------> libs目录所在的具体位置
- Command line ---------> 要执行的命命令
Command line输入
deploy:deploy-file -Durl=file://D:/IDEAProject/${YourProject}/libs -Dfile=sqljdbc4.jar -DgroupId=ownrepo -DartifactId=sqljdbc4 -Dversion=1.0
参数 | 说明 |
---|---|
-Durl | 项目的libs路径, 可以是任何位置 |
-Dfile | 要导入的jar |
-DgroupId | 可自定 |
-DartifactId | 可自定 |
-Dversion | 可自定 |
执行完后,lib目录应该是这样的
-libs
-------sqljdbc4.jar
-------ownrepo
---------------sqljdbc4
----------------------1.0
3.pom.xml导入依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.cn</groupId>
<artifactId>medicinalDietShop</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<repositories>
<repository>
<!--id和name自定,url指定libs目录-->
<id>local_libs</id>
<name>local_repo</name>
<url>file:${project.basedir}/libs</url>
</repository>
</repositories>
<!--导入依赖,这里都是执行命令的时候设置的,手动填-->
<dependency>
<groupId>ownrepo</groupId>
<artifactId>sqljdbc4</artifactId>
<version>1.0</version>
</dependency>
<dependency>...</dependency>
<dependency>...</dependency>
<dependency>...</dependency>
</project>
4.编译打包
回到idea右侧maven面板
执行
LifeCycle ----- clean
LifeCycle ----- install
如果发现控制台执行结果不是0的话,你应该检查控制台信息,是否有出错的情况
Process finished with exit code 0
生成的war包可以在左侧的${YourProject} -> target 目录下看到war包
网友评论