如何在覆盖jar项目时运行Jetty在未提取的战争依赖项上分叉Mojo?

时间:2014-08-16 16:54:35

标签: maven jetty maven-3 maven-jetty-plugin jetty-9

我有一个jar类型的项目。这个jar是一个"扩展模块"它转到第三方webapp的WEB-INF/lib(可在公共maven仓库中获得)。在pom.xml中,我对该webapp有一个war类型依赖。

我希望能够在未提取的 war文件上运行mvn jetty:run-forked(直接来自~/.m2/repository,同时添加项目依赖项和jar工件"虚拟&#34对于WEB-INF / lib。这样做似乎比预期的要简单,因为jetty初始化变得非常复杂。我最终搞乱了jetty / maven Java源代码,有效地重新编程了XML中的初始化。:)最后来看{{3}未来还有进一步的麻烦。事实上,对于非平凡的webapps来说似乎无法运行未爆炸的战争(由于"文件无法解析或与URLClassloader&#34不兼容)。

鉴于目前的码头/ maven来源,这有可能吗?

要让它运作起来需要做些什么?

1 个答案:

答案 0 :(得分:0)

您可以使用扩展模块重新打包webapp WAR并运行它。你需要:

  1. 将您的扩展模块的打包类型更改为WAR,但让Maven仍然使用archiveClasses = true将您的类打包在JAR(在WAR中)中。
  2. 使用maven-war-plugin's overlay函数在webapp WAR中插入模块的JAR。
  3. 在生成的WAR上运行Jetty。