2

这是我想做的事情。我创建了一个maven项目并在eclipse中为它配置了jetty插件......

因此,如果我确实运行并设置 maven 目标,那么从 Eclipse 中jetty:run它会在 web.xml 中指定的端口上的码头上运行我的项目。现在我想构建 jar 文件,当我这样做时,java -jar myapp.jar它会自动调用jetty:run.

我怎样才能做到这一点?

4

1 回答 1

3

如果您想打包您的应用程序,以便您可以将其交给某人并让他们将其作为独立应用程序运行,而无需将war文件部署到Web容器中,那么这与mvn jetty:run在开发时做的事情不同,我将调用该部署时间以避免任何混淆

在部署时,我们不能假设机器上会有 maven,因此没有mvn jetty:run,即使有,这也行不通,除非我们像在开发环境中一样交付源代码来运行构建!

可以通过将应用程序战争中的码头 jar 与 Main 类捆绑在一起来打包独立的 Web 应用程序,以编程方式启动码头,并让它运行应用程序战争。这依赖于 WAR 和 JAR 的文件和目录结构不同的事实,因此两者之间没有明显的重叠,这使得这种解决方法成为可能,并且它还留下了将 war 文件部署在一个网络容器可能

于 2011-11-19T08:19:55.623 回答