2014-06-20 18 views
7

ja ustawić główne klasy jak to użyć wtyczki maven:Określ główną linię poleceń klasa Wiosna-Boot

<plugin> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-maven-plugin</artifactId> 
<configuration> 
    <mainClass>com.myapp.main.MainClass</mainClass> 
</configuration> 
</plugin> 

Ale czasami chcę uruchomić aplikację z innego mojego głównego klasy. Jakie są argumenty wiersza poleceń, aby to zrobić?

java -jar myapp-1.0.jar ... 

Thx

+0

+1. Mam to samo pytanie (zdecydowałem się na napisanie mojej własnej "głównej" klasy głównej, która zajmie się pierwszym argumentem, a następnie wyśle ​​ją gdzieś indziej, abyś mógł uzyskać ładną linię poleceń bez pełnych nazw klas i dziwnych rzeczy -D, ale dobrze wiedzieć, kiedy chcesz prowadzić zajęcia, o których wcześniej nie myślałeś). – Thilo

+0

możliwy duplikat [wielu uruchamianych klas wewnątrz JAR, jak je uruchomić?] (Http://stackoverflow.com/questions/3976514/multiple-runnable-classes-inside-jar-how-to-run-them) –

+0

Vinay Lodha, nie, to nie działa: 'Wyjątek w wątku" main "java.lang.NoClassDefFoundError: org/springframework/beans/BeansException' – etig

Odpowiedz

5

Jest launcher for that in Spring Boot already. Musisz zbudować słoik z tym jako Main-Class (by setting the layout in the build config).

+1

I chcesz ustawić układ na" ZIP ", aby uzyskać PropertyLauncher. – Thilo

+0

Wiem, że to stary post, ale wciąż mam pytanie. Czy musisz zbudować 2 różne słoiki z różnymi sieciami? lub czy można go określić jako parametr wiersza poleceń w tym samym słoiku? – amitection

+0

Czy widzisz to: http://docs.spring.io/spring-boot/docs/1.4.0.RELEASE/reference/htmlsingle/#executable-jar-property-launcher-features? –

15

następujące polecenie rade:

java -cp my-app.jar -Dloader.main=myApplicationClass org.springframework.boot.loader.PropertiesLauncher 
+1

IMO to najlepsze rozwiązanie dla tych, którzy nie chcą się bawić z ich konfiguracjami. –

1

wykonujące z Windows PowerShell potrzebowałem tego formatu (z cudzysłowów):

java -cp .\myjarfile.jar -D"loader.main=com.app.etc.FullyQualifiedMainClass" org.springframework.boot.loader.PropertiesLauncher

Aby wyjaśnić przyjęty odpowiedź: Można bezpośrednio zmodyfikuj właściwość loader.main w pliku META-INF/MANIFEST.MF słoika, jeśli nie masz nic przeciwko bardziej statycznemu rozwiązaniu.

Powiązane problemy