我有一个multimodule maven项目,其中一个模块用于分发。有没有一种使用maven来运行可执行jar的好方法?
Project \
| moduleA \
| moduleB \
| ...
| dist-module \
该发行版包含一个可执行的jar,我想轻松执行。然而,执行它,我必须键入类似:
java -jar dist-module/target/dist-module-1.0-SNAPSHOT-full-dist/myJar.jar
这将是相当最好只需键入:
mvn exec:java \ OR
mvn exec:exec
不幸的是,我无法找到一个方法来获取Java目标执行一个.jar。 exec目标实际上会这样做,但有一个问题:jar包含嵌入式jetty服务器,并且由于exec的工作方式(不使用与maven相同的JVM),服务器不终止,除非我终止进程手动,这同样麻烦。
有关如何使用maven做到这一点的任何建议?
编辑:
为了清楚起见,该命令将主要用于简单的手动烟雾测试;读取日志输出并确保程序在其分发环境中正确启动。因此,它可能应该是一个阻止与ctrl-c终止服务器和maven的调用。
嵌入式服务器专门用于运行一些特定的应用程序,并且不会自动重新加载它们。所以,长久以来不需要让服务器独立于Maven运行。
码头的任务是什么? – Nachtgold 2013-03-04 11:52:38
你可以附加有问题的exec:java目标定义吗? – 2013-03-05 12:08:10
没有好的方法,因为maven是一个构建和部署工具。如果你的jar是构建过程的一部分,那么为它写一个maven插件。如果你只是想用maven来运行你的应用程序,也许最好还是去想其他的东西。 – kan 2013-03-06 11:53:27