【问题标题】:Spring Boot - package application classes as a jar in BOOT-INF/libSpring Boot - 将应用程序类打包为 BOOT-INF/lib 中的 jar
【发布时间】:2017-02-17 10:31:57
【问题描述】:

我正在使用带有 Gradle 3.1 的 Spring Boot 1.4.1。应用了 Spring Boot 插件的模块使用jar 任务创建自己的jar,并且还使用bootRepackage 创建了'fat' jar。但是,该模块中的类位于 BOOT-INF/classes 中,但我希望它们位于 BOOT-INF/lib 中的单独 jar 中。如何做到这一点?

编辑:我知道我可以将代码移动到单独的模块中,但由于各种原因,我无法进行这样的拆分(除非没有其他方法)。我正在寻找一个单模块解决方案,如果有的话。

【问题讨论】:

  • 你为什么不希望类在BOOT-INF/classes
  • 因此:github.com/spring-projects/spring-boot/wiki/…。建议的解决方法是将应用程序类打包为 jar,将它们从 fat jar 中解压缩,然后 Jersey 扫描将再次起作用。

标签: spring-boot spring-boot-gradle-plugin


【解决方案1】:

您需要设置 multi-project build 并将所有与 Jersey 相关的类移到一个单独的项目中。然后,您可以使用 project 依赖项在 Spring Boot 项目中依赖这个新项目。例如:

dependencies {
    compile project(':jersey-endpoints')
}

【讨论】:

  • 是的,我知道这种方式,但有点希望有一种更简单的方法,特别是因为文档建议这样做。为许多人引入这种重大变化的原因是什么(至少我知道相当多的项目有这个问题)?新布局是否真的有需要改变的优势?
  • 如果您已经知道一种方法可以回答您的问题,那么在您的问题中这么说会很好。真是浪费时间。
  • 你是对的,对不起,我更新了问题。不过,最好在文档中提及方法是什么,这样可以节省更多时间。
猜你喜欢
  • 1970-01-01
  • 2017-03-26
  • 2020-01-19
  • 2017-04-20
  • 2020-11-03
  • 2019-02-20
  • 2015-06-10
  • 1970-01-01
  • 2018-01-26
相关资源
最近更新 更多