背景:我正在maven项目中设置功能测试模块 . 我们使用maven-jetty-plugin进行测试 .
我已经设置了jetty插件as described here(与Failsafe插件很好地配合),但我想做的是使用jetty(刚刚安装到本地maven)从我们的主Web模块部署war工件功能测试模块运行时的repo) .
jetty插件的run-war goal有一个 <webApp>
元素,它采用字符串路径来部署战争 . 我更愿意使用我们的web模块定义的maven坐标来指定部署战争 . 有没有办法做到这一点?
可能的解决方法:
-
Section 4.13 of "Better Builds with Maven"描述了使用货物来部署使用maven坐标指定的战争,但是's serious overkill given that we'使用了jetty .
-
更合理的IMO正在使用依赖关系:复制将刚构建并安装的war伪像复制到功能测试模块's target directory, which I can then provide in the jetty plugin' s
<webApp>
配置元素中的固定路径 .
1 回答
这不是真正应该使用的maven jetty插件,插件部署了当前模块的战争,默认情况下不支持你想要做的事情 .
是的,Cargo可以干净利落地做到这一点 .
我不支持您想要开箱即用的东西(所以它可能不是正确的工具) . 其次,严重的矫枉过正被夸大了,实际上是一种误解,特别是考虑到货物对嵌入式Jetty的配置非常少(零?) .
没有冒犯,但你的整个问题听起来有点像:我有一把锤子,钉子很好,我可以用它作螺丝,因为得到一个螺丝刀似乎是一个严重的矫枉过正?要回答这个问题(这就是你所说的),你可以使用
dependency:copy
并使用maven jetty插件完成所有工作,但这是一个黑客(因为你实际上没有问任何问题,我猜你想要对此提出意见) . 当然最后的决定属于你:)以防万一,以下是我将如何使用Cargo实现这一点:
而且我认为这不能客观地称为“严重过度杀伤力” .