Mam projekt multimoduł maven, a jeden z modułów jest do dystrybucji.Czy istnieje dobry sposób na użycie programu maven do uruchomienia pliku wykonywalnego?
Project \
| moduleA \
| moduleB \
| ...
| dist-module \
Dystrybucja zawiera plik wykonywalny, który chciałbym łatwo wykonać. Jednak, aby go wykonać muszę wpisać coś takiego:
java -jar dist-module/target/dist-module-1.0-SNAPSHOT-full-dist/myJar.jar
Byłoby bardzo korzystne wystarczy wpisać:
mvn exec:java \ OR
mvn exec:exec
Niestety, nie mogę znaleźć sposobu na zdobycie gola java wykonaj .jar. Cel exec faktycznie to zrobi, ale jest pewien haczyk: słoik zawiera wbudowany serwer pomostowy, a ze względu na sposób działania exec (nie używa tej samej maszyny JVM co maven) serwer nie kończy się, dopóki nie zabiję procesu ręcznie, co jest podobnie uciążliwe.
Wszelkie zalecenia dotyczące tego, jak to zrobić przy użyciu programu maven?
Edit:
Dla wyjaśnienia, to polecenie będzie wykorzystywany głównie do prostego ręcznego dymu testowania; aby odczytać wyjście dziennika i upewnić się, że program został poprawnie uruchomiony w swoim środowisku dystrybucji. Jako takie, prawdopodobnie powinno to być połączenie blokujące z ctrl-c kończącym zarówno serwer jak i maven.
Wbudowany serwer specjalizuje się w uruchamianiu kilku konkretnych aplikacji i nie ładuje ich automatycznie. Tak więc, nie ma dużej potrzeby utrzymywania serwera działającego niezależnie od urządzenia przez długie okresy czasu.
Jakie jest zadanie pomostu? – Nachtgold
Czy możesz dołączyć pom z problematyczną exec: definicją celu java? –
Nie ma dobrej drogi, ponieważ maven jest narzędziem do budowania i wdrażania. Jeśli twój słoik jest częścią procesu kompilacji, napisz do niego maven plugin. Jeśli chcesz po prostu użyć aplikacji maven do uruchomienia aplikacji, może lepiej pomyśleć o czymś innym. – kan