我想添加一个替代的入口点到我的
Spring-Boot应用程序.我宁愿把它当成一个肥罐.这可能吗?
根据他们的documentation,属性loader.main指定要启动的主类的名称.
我尝试java -jar MyJar.jar –loader.main = com.mycompany.AlternateMain,但是我的pom.xml中指定的start-classes仍然运行(如果我从pom.xml中删除它,那么我在打包时出错) ).
或者,我尝试java -cp MyJar.jar com.mycompany.AlternateMain,但我不知道一个很好的方法来添加所有的嵌套jar到类路径.
有什么建议么?
编辑:这是我使用的解决方案
正如jst建议的那样,我改变了我的启动器以使用PropertiesLauncher.我通过修改我的spring-boot-maven-plugin的配置来做到这一点.
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>${start-class}</mainClass> <layout>ZIP</layout> ...
我创建了我的胖罐(mvn包),然后调用替代主机,如下所示:
java -jar -Dloader.main=com.mycompany.AlternateMain MyJar.jar
谢谢您的帮助!
解决方法
我不相信财产会适用于你的情况.有3种不同的“发射器”(返回文档并看到).如果你正在构建一个jar,它将使用JarLauncher类.如果将其切换到PropertiesLauncher,那么loader.main将会很有用.
Meta-INF / MANIFEST.MF
Main-Class: org.springframework.boot.loader.PropertiesLauncher