Spring Boot 创建一个可以执行的 Jar


prtyaa
prtyaa 2023-12-29 19:48:55 51581 赞同 0 反对 0
分类: 资源
我们希望将我们上面的程序打包成一个可以执行的 Jar,然后我们可以通过这个 Jar 部署到生产服务器上来运行。 可以执行的 Jar(Executable jars)有时候也会被称为 “fat jars”,这个 jar 中有你所有编译的类和所有运行这些类所需要依赖的 jar。换句话说就是将所有的依赖和你的代码打包成一个可以执行的文件,你可以通过命令行直接运行这个 jar,而不需要将这个 jar 部署到服务器或者容器中。

可执行的 jars 和 Java


Java 并没有给提供一个标准的方案来载入所有需要的 jar 文件(有时候 jar 自己还会包含有其他的 jar)。 当你尝试分发可以自动运行的 jar 的时候,你可能会遇到一些问题,而导致自动运行的 jar 没有办法正常运行和启动。 application.
为了解决这个问题,很多应用开发者使用 “uber” jars。 一个 uber jar 包中介包括了所有应用程序运行所需要的类和依赖的类,然后将这些编译后的类打包到一个单独的归档文件中。 使用这种方式来部署你的引用的话,当你尝试通过部署的应用来查看需要的类还引入了那些包 或者 jar 的时候就变得非常困难。 同时,这种方式还有一些潜在的其他问题,比如说在不同的包中有相同名字的类。这种情况将会导致编译无法通过或者有丢失类的问题。
Spring Boot 采用了 其他的方法 同时能够让你能够访问 Jars 的目录。
为了在 Spring Boot 中创建一个可以执行的 jar,我们需要将插件 spring-boot-maven-plugin 添加到我们的 pom.xml 文件中。 将下面的代码插入到 dependencies 部分的后面:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>



spring-boot-starter-parent POM 包含有 <executions> 配置来绑定 repackage 的任务。 如果你没有使用 parent POM,你需要自行申明这个配置。 请参考 插件文档 来获得更多的详细信息。
保存更新过后的 pom.xml 文件,然后从命令行中运行 mvn package 命令,你将从命令行中看到下面的输出:
$ mvn package [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building myproject 0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] .... .. [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ myproject --- [INFO] Building jar: /Users/developer/example/spring-boot-example/target/myproject-0.0.1-SNAPSHOT.jar [INFO] [INFO] --- spring-boot-maven-plugin:2.5.0-SNAPSHOT:repackage (default) @ myproject --- [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------
如果是第一次构建的话,会下载需要的插件,可能会需要耗费一点点时间。



当构建完成后,访问 target 目录,你在这个目录中应该能够找到一个 myproject-0.0.1-SNAPSHOT.jar 的文件。 这个文件的大小应该差不多有 10 MB 左右。 如果你想看看这个文件里面有些什么东西的话,你可以通过运行 jar tvf 命令来进行查看:
$ jar tvf target/myproject-0.0.1-SNAPSHOT.jar
通过运行上面的命令后,你应该可以在 target 目录中看到小文件被命名为 myproject-0.0.1-SNAPSHOT.jar.original 。 这些文件就是 Maven 命令创建的。Spring Boot 会将上面创建的这些文件进行重新打包。



你可以通过运行 java -jar 命令来运行你的应用程序,输入上面命令后,你的控制台应该会有下面的输出:
$ java -jar target/myproject-0.0.1-SNAPSHOT.jar . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.5.0-SNAPSHOT) ....... . . . ....... . . . (log output here) ....... . . . ........ Started Example in 2.536 seconds (JVM running for 2.864)



与前面使用命令运行的方式一样,你可以通过单击 ctrl-c 来退出当前运行的应用。

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
prtyaaL2
粉丝 1 资源 1949 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  125
统信桌面专业版【全盘安装UOS系统】介绍  120
银河麒麟桌面操作系统安装佳能打印机驱动方法  111
银河麒麟桌面操作系统 V10-SP1用户密码修改  105
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益218元

3

1843880570 收益214.2元

4

IT-feng 收益209.03元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!