java运行jetty而不使用maven 2插件打包项目

smtd7mpg  于 2021-07-05  发布在  Java
关注(0)|答案(1)|浏览(574)

我试图运行jetty而不构建整个项目,只是将jetty指向目标文件夹下的一个文件夹。这样做的原因是我希望在为glassfish构建应用程序时使用jetty作为静态内容服务器。例如,我不想在对css文件做一点更改时总是重新部署。
当我使用maven jetty插件并运行jetty:run-exploded,它自动生成包含测试和包的项目。我希望避免这种情况。
有什么建议吗?

o3imoua4

o3imoua41#

关于jetty:run-exploded,文件上说:
这个目标用于将你的webapp组装成一场爆发式的战争,并自动将其部署到jetty。
...
调用生命周期阶段的执行 package 在执行之前。
因此,你所描述的行为是正常的行为,这是有道理的,因为jetty不能指望在目标下找到一些东西,如果它还没有建成,作为 package 阶段可能涉及过滤(因此必须进行过滤)。
也就是说,有一些事情可能会有所帮助(我不确定我是否清楚地理解了你的目标,所以我会提到几个选项)。第一种选择,你可以使用 manual 重新加载而不是 automatic 以避免自动重新部署。关于 manual 模式,文档中写道:
“手动重新加载”从jetty 6.2.0pre0开始,将提供一个新功能来控制webapp的重新部署。配置参数为: <reload>[manual|automatic]</reload> 当设置为手动时,不会自动扫描和重新部署webapp。相反,用户可以通过点击回车键来控制何时重新加载webapp。设置为“自动”,扫描和自动重新部署按scanintervalseconds参数控制的间隔执行。通过使用-djetty.reload系统参数,还可以在命令行上配置重新加载范例的选择。例如:“mvn-djetty.reload=manualjetty:run将强制手动重新加载,而不管项目pom中配置了什么。类似地:“mvn-djetty.reload=automatic-djetty.scanintervalseconds=10jetty:run无论项目pom中的配置如何,都将强制每10秒自动扫描一次背景。
另一个选项是创建另一个“空”war模块(在maven意义上)来启动jetty,并使用jettyconfig可选参数来设置:
位置 jetty.xml 将应用于任何插件配置参数之外的文件。如果有其他webapps、处理程序等需要部署,或者有其他无法从插件配置的jetty对象,则可以使用它。
这样,您应该能够从其他webapp部署静态内容。我不认为额外的内容将被“观看”,但你可以随时结合它与手动模式,如果需要的话。但从未测试过。

相关问题