Chcę dodać alternatywny punkt wejścia do mojej aplikacji Spring-Boot. Wolałbym zachować to jako słoik tłuszczu. czy to możliwe?Spring Boot - Jak określić alternatywną klasę początkową? (Wiele punktów wejścia)
Zgodnie z ich documentation, właściwość loader.main
określa nazwę głównej klasy do uruchomienia.
Wypróbowałem , ale klasa początkowa określona w moim pliku pom.xml nadal była uruchomiona (a jeśli usunę to z pliku pom.xml, to wystąpił błąd podczas pakowania).
Alternatywnie próbowałem java -cp MyJar.jar com.mycompany.AlternateMain
, ale nie wiem o dobrym sposobie dodawania wszystkich zagnieżdżonych słoików do ścieżki klasy.
Wszelkie sugestie?
Edycja: Oto rozwiązanie, które użyłem
Jak jst zasugerował, zmieniłem wyrzutnię korzystania z PropertiesLauncher. Zrobiłem to, modyfikując konfigurację mojego wiosennego boot-maven-plugin.
<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
.
tworzę tłuszczu słoik (pakiet mvn), a następnie nazywa alternatywny main takiego:
java -jar -Dloader.main=com.mycompany.AlternateMain MyJar.jar
Dzięki za pomoc!
Spring Boot po prostu używa Manifestu JAR, aby określić główną klasę i klasę classpath.Więc myślę, że prawdziwym pytaniem jest tutaj, czy może być więcej niż jedna klasa główna w pliku wykonywalnym JAR? To pytanie jest również zadawane/odbierane tutaj: http://stackoverflow.com/q/3976514/953327 – FGreg
Co zamierzasz osiągnąć z tym? Czy chcesz utworzyć wiele aplikacji z Spring Boot? – Makoto
@FGreg I można uzyskać dostęp do alternatywnej sieci głównej za pomocą drugiego polecenia, które zanotowałem, które pasuje do odpowiedzi w wątku SO, do którego prowadzi łącze. Aby móc z powodzeniem używać tego, musiałbym dowiedzieć się, jak dodać zagnieżdżone słoiki do ścieżki klasy. –