#SpringBoot打包为可执行Jar方法。(已验证)
作者:sunpx3
来源:CSDN
原文:https://blog.csdn.net/sunpx3/article/details/81170873
版权声明:本文为博主原创文章,转载请附上博文链接!
1、修改pom文件,加入打包插件
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
不指明的话在开发工具里运行没有一点问题,如果你没有用到java8的特性打包也没有问题。一旦你用到了java8的特性,而且使用spring-boot-maven-plugin作为builder,一定要指明jdk版本。不然你会收到类似不识别Lambda,请使用resource8这样的错误。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
2、pom文件
<packaging>pom</packaging>
改为
<packaging>jar</packaging>
3、像上述这样设置完后,运行mvn package或到eclipse运行也一样,打包会成功,但打出来jar不包含依赖,且是不能直接运行的,
查了下maven-compiler-plugin插件文档上有说
https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/maven-plugin/usage.html
少加了个repackage重打包。
可以直接设置main方法入口mainClass,后面还有一大堆属性,用不到就没在看,
现在pom文件如下
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
<mainClass>com.sunpx.quartz_one.Application</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<!-- 分离出代码包
<configuration>
<classifier>exec</classifier>
</configuration>
-->
</execution>
</executions>
</plugin>
</plugins>
</build>
运行mvn package后,可打包为包含所有依赖的可执行jar.
目录结构
再查看文档,可运行jar的目录结构。
然后试着运行jar ,执行java -jar xxxxx.jar
这样可以运行,但每次都将依赖打到包中再上传,耗时耗力,所以想办法将代码与依赖分离开。依赖只需要上传一次即可。
嗯,待续…
作者:sunpx3
来源:CSDN
原文:https://blog.csdn.net/sunpx3/article/details/81170873
版权声明:本文为博主原创文章,转载请附上博文链接!