SpringBoot打包成WAR包的时候把第三方jar包打到LIB文件夹下和把第三方jar包打入到SpringBoot jar包中
SpringBoot打包成WAR包的时候把第三方jar包打到LIB文件夹下和把第三方jar包打入到SpringBoot jar包中
- 首先我们应该知道我们把
SPRINGBOOT
项目打包成WAR包和JAR包的时候分别需要何种插件
我们最常用的把springBoot
打成jar包的插件是下面这样的一个插件,这是把我们的springBoot
项目打包成为一个可执行jar
的插件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
- 把
springBoot
项目打包成一个war包的插件是下面这样的一个插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</pilugin>
这个时候我们需要知道如何把第三方JAR
包引入到我们的项目中去,话不多说看下面的图片。
- 第三方jar包在项目中的目录结构,在
resources
目录下建造一个lib
目录,放入我们的第三方jar包。
在这里插入图片描述
- 把这个jar包 通过 在pom.xml中进行相应的配置让我们的项目可以找到这个第三方jar包 如下图所示: 在这里插入图片描述
这里1,2,3步骤随便自己进行填写 主要是scope
和systemPath
(用来指明这个第三方jar包的路径) 我们这里可以学习下scope
的用法:
-
system
这个意思代表这个jar包是由系统提供的,系统在本地运行编译的时候会把这个jar包编译在类路径下,但是打包的时候是不会进行打包的
-
provided
这个意思表明这个
jar
包是由jdk
容器tomcate
容器这些容器来提供的,比如我们最常见的servelet
包,这个包tomcat
服务器本身就是具有的,我们在打包的时候也不会把它打入进去 -
runtime
这个我们在
pom
依赖中引入mysql
驱动的jar
包的时候,经常会进行一个标识,这个的作用是不会把它编译到类路径下,但是打包的时候会带上它。
我们通常使用类的反射来使用 -
test
一般我们在测试环境中使用被这个标识的包,也不会被打包
-
compile
默认是这个,编译打包都会进行带入。
打WAR包需要我们在打WAR包插件中配置才可以带上第三方JAR包
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> <configuration> <webResources> <webResource> <directory>${pom.basedir}/src/main/resources/lib/</directory> <targetPath>WEB-INF/lib/</targetPath> <includes> <include>**/*.jar</include> </includes> </webResource> </webResources> </configuration> </plugin>
把项目中
lib
目录下所有的jar
包,打入到war
包中lib
文件夹下。打JAR包的时候需要我们在打JAR包的插件中配置 把第三方JAR包带入进去 如下图配置
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin>
总结:我们只需要晋中相应的打jar
包和打war
包插件就行了,配置来说更为简单。