spring-boot - 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 Boot Maven 插件在 Maven 中提供 Spring Boot 支持,让您可以打包可执行 jar 或 war 档案并“就地”运行应用程序。
它构建了与您的应用程序一起捆绑在 Tomcat 中的 uber jar。如果您检查 jar 的内容,jar -tf <file_name>
您会发现格式有点不同。Spring Boot 类看起来很正常,但是您的项目文件位于一个BOOT-INF
文件夹中。
推荐阅读
- arrays - vb.net how to flatten 3 dimensional array into single dimension
- html - Fill remaining whitespace in line with dots (multiline text)
- r - Time data populating in r
- python - Could not get environment variables: {}
- php - 如何计算 30 天内的数据库行数?
- excel - Overriding a column in one excel file with data from a separate excel file
- mouseevent - Is it possible to know where the map will stop after a 'dragend' event fires?
- c# - 将相同大小的图像网格缝合在一起
- spring - 保存时自动装配在 Spring Boot 休眠验证器中不起作用
- ldap - LDAP 使用两个 OU(或子 OU)登录 Oracle APEX