当前位置: 首页 > 知识库问答 >
问题:

在Spring Boot

龚招
2023-03-14

Spring Boot2.3引入了使用Spring Boot Maven/Gradle插件构建优化的Docker映像的支持。spring-boot:build-image目标完成了一系列工作:

  • 创建图层索引
  • 调用Paketo构建包
  • 构建OCI映像

是否有一种方法可以为使用旧的Spring Boot版本的模块复制这些步骤?更好的是,这些步骤可以直接集成到Maven/Gradle构建中吗?

共有1个答案

松高歌
2023-03-14

由于在Spring Boot2.3中引入了分层jars特性(包括layers.idx文件生成和对云原生Buildpacks/paketo.io的spring-boot-maven-plugin支持),我想说的是,您不能用标准工具来降低它的等级。

但是我想您可以尝试自己生成layers.idx文件-甚至选择默认文件,因为应用程序的布局可能不会有太大变化。一个例子是(不使用快照描述):

- "dependencies":
  - "BOOT-INF/lib/"
- "spring-boot-loader":
  - "org/"
- "snapshot-dependencies":
- "application":
  - "BOOT-INF/classes/"
  - "BOOT-INF/classpath.idx"
  - "BOOT-INF/layers.idx"
  - "META-INF/"

有了这个文件(意味着把它放入targe文件夹(例如,您可以通过一个简单的Maven插件将其自动化)),pack CLI应该能够提取它。因此,安装pack CLI并运行Paketo构建,而不使用spring-boot-maven-plugin,如下所示:

pack build yourAppNameHere --path . --builder paketobuildpacks/builder:base

我自己并没有真正尝试过这种方法--如果目录结构在旧的Spring Boot版本中有很大不同,那么可能会遇到问题。但我希望听到一些反馈!

 类似资料:
  • 各位工程师,大家好! 我在试图创建一个胖罐子来执行cucumber测试时遇到了一个问题。最初,我按照指南从Baeldung设置测试。当在Maven测试阶段执行时,测试运行良好。当运行带有参数的mvn exec:java命令时,它也能正常工作。 然而,当我创建了一个胖罐子并试图执行测试时,我面临着错误 以下是我的项目的解释,它基本上与Baeldung的测试项目完全一样。 项目结构 直接从可执行jar

  • 我知道在DispatcherServlet之外使用请求范围bean需要一些配置,并且已经阅读了http://docs.spring.io/spring/docs/4.0.x/spring-framework-reference/html/beans.html#beans-factory-scopes-oth,但是还没有成功: 对于Servlet3.0+,这可以通过WebApplicationIni

  • 使用的技术: Spring Boot 1.4.2.Release,Spring 4.3.4.Release,Tymeleaf 2.1.5.Release,Tomcat Embeded 8.5.6、Maven 3、Java 8 我创建了这个服务来发送电子邮件

  • 我有一个简单的RestController应用程序- 它在SpringBoot(http://localhost:8080/greeting)上工作得很好,但是当我创建一个WAR并将其部署到Tomcat(9.0.2)上时,它会抛出一个404。

  • 我有表,我不会翻译数据库对象,因为ORM可能使用命名约定。 科雷托尔 当我尝试使用findById时,我得到:org.PostgreSQL L.util.psqlException:error:casavenda0_1_.id_anunciante列不存在提示:也许您是想引用“casavenda0_.id_anunciante”列。

  • 似乎Springboot自动配置自己来使用Tomcat的Logback。我想禁用它,并使用我在类路径中提供的一个。 LoggerFactory不是LoggerContext,但Logback位于类路径上。删除Logback或类[org.slf4j.impl.SimpleLoggerFactory]的竞争实现(类org.slf4j.impl.SimpleLoggerFactory)对象必须是类ch.

  • 在我的Web应用程序中,我使用以下Spring版本: 我有很多豆,这取决于另一个和形式循环,但没有问题,我可以使用 没有任何问题。 现在我正在尝试使用 不幸的是,当我试图从另一个模块注入beans时,我得到了异常: 如何解决?为什么我在SpringBoot上得到这个错误,而在没有使用SpringBoot的web应用程序上没有?