一、springmvc需要打成War通过nginx或者tomcat发布,而springboot内嵌tomcat等容器,可以打成Jar直接执行运行,比较方便
jar包里面包含了编译后的类和所有依赖的jar
1、pom配置:
pom文件中添加:若没有该配置默认打包成jar包
<packaging>jar</packaging>
maven相关配置:
<build>
<!--指定打成jar包之后的包名-->
<finalName>wx-springboot-jdbc</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<!-- 指定jdk源代码版本 指定编译后class版本,指定编码类型 -->
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
重新打包指定主程序入口:详细的可以参考官方文档:
https://docs.spring.io/spring-boot/docs/2.2.0.RELEASE/maven-plugin/usage.html
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.wuxi.UserApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
2、在idea中执行package命令:也可以使用 mvn package
进入该jar目录执行:
浏览器访问测试下ok
3、解压jar查看以下目录结构:
上面打包可以看到还生成了wx-springboot-jdbc.jar.original文件,.original默认情况下不可执行,这是重新打包前的原始jar文件
BOOT-INF:classes包含编译好的类,lib包含依赖的jar包:(引用了jdbc等)
META-INF目录:包含了运行jar包的一些配置信息把:
打开META-INF/MANIFEST.MF文件可以看到:该jar包的一些信息
Manifest-Version: 1.0
Implementation-Title: springboot-jdbc
Implementation-Version: 0.0.1-SNAPSHOT
Start-Class: com.wuxi.UserApplication
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Build-Jdk-Spec: 1.8
Spring-Boot-Version: 2.2.0.RELEASE
Created-By: Maven Archiver 3.4.0
Main-Class: org.springframework.boot.loader.PropertiesLauncher
org目录:看起来是环境的一些内容