部署jetty应用程序的最佳方法--选项太多?

部署jetty应用程序的最佳方法--选项太多?,jetty,embedded-jetty,Jetty,Embedded Jetty,我需要部署web应用程序的生产版本。到目前为止,我一直在用mvnjetty:run测试它。我以前使用过实际的jetty安装,但它们似乎只有在您希望在同一web服务器上为多场战争服务时才有必要。但在某些方面,这是最直截了当的(mvn包并复制它) 我的其他选择是创建一个启动服务器的可运行jar(mvn assembly:single),但我需要调整配置,以便提供静态内容src/main/webapp,并且可以找到web.xml 我也读过一篇关于“可运行的战争”的文章。这可能会避免src/main/w

我需要部署web应用程序的生产版本。到目前为止,我一直在用mvnjetty:run测试它。我以前使用过实际的jetty安装,但它们似乎只有在您希望在同一web服务器上为多场战争服务时才有必要。但在某些方面,这是最直截了当的(
mvn包
并复制它)

我的其他选择是创建一个启动服务器的可运行jar(
mvn assembly:single
),但我需要调整配置,以便提供静态内容
src/main/webapp
,并且可以找到
web.xml

我也读过一篇关于“可运行的战争”的文章。这可能会避免
src/main/webapp
问题,因为这些文件已经在WAR文件中列出。然而,我不知道该怎么做

我也可以坚持使用
mvnjetty:run
,但这似乎不是最好的选择,因为这样生产部署就与代码绑定,而不是作为一个独立的jar


对这些不同方法的最佳方式或利弊有何看法?我是否缺少一些选项?

我对maven不太熟悉,但这就是我们使用嵌入式Jetty进行部署的方式:

我们使用Embedded jetty应用程序创建了一个文件JAR,并打包了必要的lib JAR

我们将静态内容部署在WAR文件中(您也可以将其打包到JAR中)。所有内容都由ANT文件生成,该文件:

1) 构建静态文件WAR(这也会创建web.xml) 2) 将WAR复制到应用程序资源中 3) 编译一个可执行的JAR

要使嵌入式Jetty“查找并服务”静态文件,请将带有WebAppContext的war添加到Jetty处理程序中:

Server jetty = new Server(port);
HandlerList handlers = new HandlerList();
WebAppContext staticContentAsWar = new WebAppContext();
staticContentAsWar.setContextPath("/static/");
staticContentAsWar.setWar(resource_Path_to_WAR);
handlers.addHandler(set);
jetty.setHandlers(handlers);
jetty.start();
HTH

来自SimpleRicy的方法使用简单,效果很好。当您运行
mvn package
时,您会遇到两场战争——一场是可执行的
java-jarmywar.war--help
给出了用法,允许进行一些配置(端口等)