首页 > 解决方案 > Spring Boot Maven 插件:它实际上做了什么?

问题描述

有人可以让我了解 Spring Boot Maven 插件的实际作用吗?我一直在谷歌搜索,但我发现的大部分内容都没有给出清晰的图片。

到目前为止我的印象是它可以创建一个不需要通过运行的“完全可执行”的jar,java -jar并且还可以制作一个更传统的jar,你可以通过运行java -jar。我敢肯定它也可以产生其他变化。

我也觉得它可以打包依赖和资源。我根本不清楚应用程序在运行时如何“访问”资源。

在上述任一结果中,我是否需要jar 而不需要其他任何东西(即没有资源文件、依赖 jar 等)?换句话说,罐子是独立的吗?当我打开罐子时,它所需的一切似乎都在那里。真的是这样吗?

现在,让我们进一步了解我正在尝试做的事情。我正在使用 REST API 编写一组 Spring 服务。每个服务都将在其自己的 VM(或容器 - 未来)中运行。这些服务被打包到一个 jar 中,并通过 Spring 配置文件(即spring.profiles.active=a-profile)选择要使用的服务。

我之前做过这样的事情的方式是使用 Maven 程序集插件为每个单独的服务生成一个存档 (zip) 并包含所有必需品(依赖 jars、资源文件等)。我会把它放在需要的地方,解压它,调整一些配置并通过包含的脚本运行它。

当涉及 Spring Boot Maven 插件时,我得到的印象不是“它是如何完成的”。

标签: spring-bootspring-boot-maven-plugin

解决方案


Spring Boot Maven 插件在 Maven 中提供 Spring Boot 支持,让您可以打包可执行 jar 或 war 档案并“就地”运行应用程序。

它构建了与您的应用程序一起捆绑在 Tomcat 中的 uber jar。如果您检查 jar 的内容,jar -tf <file_name>您会发现格式有点不同。Spring Boot 类看起来很正常,但是您的项目文件位于一个BOOT-INF文件夹中。


推荐阅读