У меня есть мультимодульный проект maven, и один из модулей предназначен для распространения.Есть ли хороший способ использовать maven для запуска исполняемого банку?
Project \
| moduleA \
| moduleB \
| ...
| dist-module \
В дистрибутиве имеется исполняемый фляга, которую я хотел бы легко выполнить. Однако, чтобы выполнить его, я должен ввести что-то вроде:
java -jar dist-module/target/dist-module-1.0-SNAPSHOT-full-dist/myJar.jar
Было бы весьма желательно, просто наберите:
mvn exec:java \ OR
mvn exec:exec
К сожалению, я не могу найти способ, чтобы получить Java цель выполните .jar. Цель exec на самом деле это сделает, но есть улов: в банке есть встроенный сервер причалов, и из-за того, как работает exec (не использует тот же JVM как maven), сервер не завершается, если я не убью процесс вручную, что тоже надоедает.
Любые рекомендации о том, как это сделать, используя maven?
Edit:
Для пояснения, эта команда в первую очередь будет использоваться для простого ручного дыма тестирования; чтобы прочитать выход журнала и обеспечить правильную работу программы в своей среде распространения. Таким образом, вероятно, это должен быть блокирующий вызов ctrl-c, завершающий как сервер, так и maven.
Встроенный сервер специализирован для запуска нескольких конкретных приложений и не перезагружает их автоматически. Таким образом, нет большой необходимости поддерживать работу сервера независимо от maven в течение длительных периодов времени.
Какова задача причала? – Nachtgold
Можете ли вы прикрепить pom с проблемным exec: определение цели java? –
Нет никакого хорошего способа, потому что maven - это инструмент для сборки и развертывания. Если ваша банка является частью процесса сборки, напишите для нее плагин maven. Если вы просто хотите использовать maven для запуска своего приложения, возможно, лучше подумать о чем-то другом. – kan