Ho un progetto Maven multimodulo e uno dei moduli è per la distribuzione.C'è un buon modo di usare Maven per eseguire un jar eseguibile?
Project \
| moduleA \
| moduleB \
| ...
| dist-module \
La distribuzione contiene un jar eseguibile che mi piacerebbe eseguire facilmente. Tuttavia, per eseguirlo devo digitare qualcosa di simile:
java -jar dist-module/target/dist-module-1.0-SNAPSHOT-full-dist/myJar.jar
Sarebbe del tutto preferibile digitare semplicemente:
mvn exec:java \ OR
mvn exec:exec
Purtroppo, non riesco a trovare un modo per ottenere l'obiettivo di Java eseguire un .jar. L'obiettivo exec lo farà, ma c'è un problema: il jar contiene un server jetty incorporato e, a causa del modo in cui funziona exec (non usa la stessa JVM di maven) il server non termina a meno che non uccido il processo manualmente, che è allo stesso modo fastidioso.
Qualche raccomandazione su come utilizzare Maven?
Edit:
Per chiarimenti, questo comando sarà principalmente utilizzato per il semplice fumo-test manuale; leggere l'output del registro e assicurarsi che il programma sia avviato correttamente nel suo ambiente di distribuzione. Come tale, dovrebbe probabilmente essere una chiamata di blocco con ctrl-c che interrompe sia il server che il server.
Il server incorporato è specializzato per eseguire alcune applicazioni specifiche e non le ricarica automaticamente. Quindi, non c'è una grande necessità di mantenere il server in esecuzione indipendentemente da Maven per lunghi periodi di tempo.
Qual è il compito del pontile? – Nachtgold
Puoi collegare il pom con l'exec problematico: definizione dell'obiettivo java? –
Non c'è un buon modo, perché maven è uno strumento di compilazione e distribuzione. Se il tuo jar fa parte di un processo di compilazione, allora scrivi un plugin di prova per esso. Se vuoi semplicemente usare Maven per eseguire la tua app, forse è meglio pensare a qualcos'altro. – kan