Spring Boot - Comment spécifier une autre start-classe? (Plusieurs Points D'Entrée)

Je veux ajouter un autre point d'entrée de mon Printemps-Démarrage de l'application. Je préfère garder cela comme un gros pot. Est-ce possible?

En fonction de leur la documentation, la propriété loader.main spécifie le nom de la classe principale pour lancer.

J'ai essayé java -jar MyJar.jar --loader.main=com.mycompany.AlternateMain, mais le début de la classe spécifiée dans mon pom.xml était encore exécuter (et si j'enlève ce à partir de la pom.xml ensuite, j'ai l'erreur lors de l'emballage).

Sinon, j'ai essayé java -cp MyJar.jar com.mycompany.AlternateMain mais je n'en connais pas un bon moyen d'ajouter toutes imbriquées les pots pour le classpath.

Des suggestions?

Edit: Voici la solution que j'ai utilisé

Jst comme suggéré, j'ai changé mon lanceur d'utiliser le PropertiesLauncher. Je l'ai fait en modifiant la configuration de mon spring-boot-maven-plugin.

<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <configuration>
    <mainClass>${start-class}</mainClass>
    <layout>ZIP</layout>
    ...

La <layout>ZIP</layout> les déclencheurs de Printemps de Démarrage d'utiliser la méthode PropertiesLauncher.

J'ai créé mes gros pot (mvn package) alors appelé l'autre principal comme ceci:

java -jar -Dloader.main=com.mycompany.AlternateMain MyJar.jar

Merci pour l'aide!

  • Printemps de Démarrage utilise simplement le POT de Manifeste pour spécifier la classe principale et du chemin de classe. Donc, je pense que la vraie question ici est peut-il y avoir plus d'une grande Classe dans un fichier exécutable JAR? Cette question est également demandé/réponse ici: stackoverflow.com/q/3976514/953327
  • De quoi avez-vous l'intention de le faire avec cela? Voulez-vous créer de multiples applications à partir de Printemps de Démarrage?
  • Je peux accéder à l'alternative principale à l'aide de la deuxième commande que j'ai noté, ce qui correspond à la réponse dans le fil que vous liez. Pour l'utiliser correctement, je dois comprendre comment ajouter mon imbriqués les pots pour le classpath.
  • Je ne veux pas créer de multiples applications avec ce. C'est en fait une preuve de concept que je fais maintenant, mais j'ai utilisé de multiples points d'entrée dans le passé pour une variété de raisons