NoClassDef-s再次使用Eclipse Jetty的Maven插件

拜托,有人帮助我,我很绝望。 我整晚都在努力。 我遇到的问题是: 使用Eclipse Jetty的Maven插件,奇怪的NoClassDef-s

基本上:我不能让Jetty插件的最新版本在集成测试中正常工作。 事实上,一切正常,直到Jetty的关闭阶段,当我被告知缺少org.eclipse.jetty.util.FutureCallback时。

我已经在上面的链接中包含了依赖项。 最初他们被忽略了,然后我在项目/构建/扩展中添加了它们。 现在我还有其他几个ClassNotFoundExceptions,我无法解决这个问题。

这就是我在POM中所拥有的:

   org.eclipse.jetty jetty-maven-plugin     uk.ac.ebi.fg.myequivalents.test_flag true   10 true   10973  10974 KILL     start-jetty pre-integration-test  run   0 true    stop-jetty post-integration-test  stop     

这些是我设置的扩展:

    org.eclipse.jetty jetty-util ${jetty.version}   org.eclipse.jetty jetty-jsp ${jetty.version}   org.eclipse.jetty jetty-io ${jetty.version}   org.eclipse.jetty jetty-jaspi ${jetty.version}   

$ {jetty.version}在父和= 9.1.3.v20140225中定义,但我尝试了很多,低至7.x

此外,Maven是3.2.1,Java是1.7.0_51,在OS X 10.9.2上运行

提前感谢您对这个令人讨厌的问题的任何帮助。

我找到了!!! 显然,问题是“停止”目标(正确地)附加到“后整合测试”阶段。 因此,如果您发出’mvn integration-test’,据我所知,此类阶段尚未达成( http://tinyurl.com/omwulm5 )。 通过仅提供’mvn verify’或’install’,并且不向POM添加任何与Jetty相关的依赖(现在所需的一切都应该包含在9.1.x中),Maven完成后没有任何投诉(万岁!)。

对于比我更聪明的读者来说,这可能看起来很愚蠢,但我仍在报道,以防万一你像我刚刚做了几个小时那样挣扎。

您不应该使用执行绑定的“运行”目标。 相反,你应该使用“开始”目标。 请参阅此处的文档: http : //www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#jetty-start-goal

不同之处在于“运行”目标将在“测试 – 编译”阶段之前进行新的构建。 “开始”目标不会调用并行构建,只是在绑定的任何阶段运行。

一月

只是尝试将10到插件配置中。

您可以在此答案中看到完整配置。