Desidero aggiungere un punto di ingresso alternativo alla mia applicazione Spring-Boot. Preferirei tenerlo come un barattolo di grasso. È possibile?Spring Boot - Come specificare una start-class alternativa? (Punti di ingresso multipli)
In base al loro documentation, la proprietà loader.main
specifica il nome della classe principale da avviare.
Ho provato java -jar MyJar.jar --loader.main=com.mycompany.AlternateMain
ma la classe iniziale specificata nel mio pom.xml era ancora in esecuzione (e se rimuovo questo dal pom.xml, allora errore durante la confezione).
In alternativa, ho provato java -cp MyJar.jar com.mycompany.AlternateMain
ma non conosco un buon modo per aggiungere tutti i jar annidati al classpath.
Qualche suggerimento?
Edit: Ecco la soluzione che ho usato
Come jst suggerito, ho cambiato il mio programma di avvio per utilizzare il PropertiesLauncher. Ho fatto questo modificando la configurazione del mio plug-in maven-spring-boot.
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>${start-class}</mainClass>
<layout>ZIP</layout>
...
Il <layout>ZIP</layout>
triggers Spring Boot to use the PropertiesLauncher
.
ho creato il mio vaso di grasso (pacchetto mvn) allora si chiamava la principale alternativa in questo modo:
java -jar -Dloader.main=com.mycompany.AlternateMain MyJar.jar
Grazie per l'aiuto!
Spring Boot utilizza semplicemente il manifest di JAR per specificare la classe principale e il percorso di classe.Quindi penso che la vera domanda qui sia che ci può essere più di una Main Class in un JAR eseguibile? Questa domanda viene anche posta/risposta qui: http://stackoverflow.com/q/3976514/953327 – FGreg
Cosa intendete realizzare con questo? Vuoi creare più applicazioni da Spring Boot? – Makoto
@FGreg Posso accedere al principale alternativo usando il secondo comando che ho notato, che corrisponde alla risposta nel thread SO a cui si collega. Per poterlo utilizzare correttamente, dovrei capire come aggiungere i miei jar nidificati al classpath. –