Я хочу добавить альтернативную точку входа в мое приложение Spring-Boot. Я бы предпочел сохранить это как толстую банку. Это возможно?Spring Boot - Как указать альтернативный стартовый класс? (Несколько точек входа)
В соответствии с их documentation, свойство loader.main
указывает имя запускающего основного класса.
Я пробовал java -jar MyJar.jar --loader.main=com.mycompany.AlternateMain
, но начальный класс, указанный в моем pom.xml, все еще выполнялся (и если я удалю это из pom.xml, то я ошибся во время упаковки).
В качестве альтернативы, я пробовал java -cp MyJar.jar com.mycompany.AlternateMain
, но я не знаю, как добавить все вложенные банки в путь к классам.
Любые предложения?
Edit: Вот решение, которое я использовал
Как предложил ПДжС я изменил свою пусковую использовать PropertiesLauncher. Я сделал это, изменив конфигурацию моего плагина spring-boot-maven.
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>${start-class}</mainClass>
<layout>ZIP</layout>
...
<layout>ZIP</layout>
triggers Spring Boot to use the PropertiesLauncher
.
Я создал мой толстый сосуд (МВН пакет), то называется альтернативной магистраль, как это:
java -jar -Dloader.main=com.mycompany.AlternateMain MyJar.jar
Спасибо за помощь!
Spring Boot просто использует манифест JAR для указания основного класса и пути к классам.Поэтому я думаю, что реальный вопрос здесь заключается в том, может ли быть более одного основного класса в исполняемом JAR? Этот вопрос также задан/здесь: http://stackoverflow.com/q/3976514/953327 – FGreg
Что вы намерены выполнить с этим? Вы хотите создать несколько приложений из Spring Boot? – Makoto
@FGreg Я могу получить доступ к альтернативному главному, используя вторую команду, которую я заметил, которая соответствует ответу в потоке SO, к которому вы ссылаетесь. Чтобы использовать это успешно, я должен был бы выяснить, как добавить мои вложенные банки в путь к классам. –