如何在Spring Boot Gradle中指定Launcher?
How to specify the Launcher in Spring Boot Gradle?
Spring 启动器中有三个启动器:JarLauncher/PropertiesLauncher/WarLauncher。
对于可执行 jar,默认情况下将使用 JarLauncher。现在我想改用 PropertiesLauncher,这样我就可以使用外部 classpath。我怎么能指定是 spring boot gradle 插件?
根据此文档的 D3.1 D.3.1 Launcher manifest,我可以像这样在 MANIFEST.MF 中指定主要 class:
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.mycompany.project.MyApplication
然而,在Spring Boot Gradle中,下面的代码片段实际上指定了Start-Class,而不是Main-Class:
springBoot {
mainClass = "com.sybercare.HealthServiceApplication"
}
我需要手动创建 MANIFIEST.MF 还是有更好的方法?
谢谢!
添加 layout
属性:
springBoot{
mainClass = "com.sybercare.HealthServiceApplication"
layout = "ZIP"
}
layout = ZIP
触发 SpringBoot 使用 PropertiesLauncher
布局属性 默认为基于存档类型(jar 或war)的猜测。对于 PropertiesLauncher,布局是 ZIP(即使输出可能是 jar 文件)。
https://docs.spring.io/autorepo/docs/spring-boot/1.2.0.M2/maven-plugin/usage.html
其他答案现已过时。目前的答案似乎是:
tasks.getByName<BootJar>("bootJar") {
manifest {
attributes("Main-Class" to "org.springframework.boot.loader.PropertiesLauncher")
}
}
Spring 启动器中有三个启动器:JarLauncher/PropertiesLauncher/WarLauncher。 对于可执行 jar,默认情况下将使用 JarLauncher。现在我想改用 PropertiesLauncher,这样我就可以使用外部 classpath。我怎么能指定是 spring boot gradle 插件?
根据此文档的 D3.1 D.3.1 Launcher manifest,我可以像这样在 MANIFEST.MF 中指定主要 class:
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.mycompany.project.MyApplication
然而,在Spring Boot Gradle中,下面的代码片段实际上指定了Start-Class,而不是Main-Class:
springBoot {
mainClass = "com.sybercare.HealthServiceApplication"
}
我需要手动创建 MANIFIEST.MF 还是有更好的方法?
谢谢!
添加 layout
属性:
springBoot{
mainClass = "com.sybercare.HealthServiceApplication"
layout = "ZIP"
}
layout = ZIP
触发 SpringBoot 使用 PropertiesLauncher
布局属性 默认为基于存档类型(jar 或war)的猜测。对于 PropertiesLauncher,布局是 ZIP(即使输出可能是 jar 文件)。
https://docs.spring.io/autorepo/docs/spring-boot/1.2.0.M2/maven-plugin/usage.html
其他答案现已过时。目前的答案似乎是:
tasks.getByName<BootJar>("bootJar") {
manifest {
attributes("Main-Class" to "org.springframework.boot.loader.PropertiesLauncher")
}
}