如何在运行到可执行jar的jetty嵌入式服务器中部署战争?

时间:2012-07-27 16:50:15

标签: java eclipse jar jetty war

我想部署一个war文件,让我们将它称为app.war,放到嵌入式码头上。

所以最简单的代码就是:

new WebAppContext(server, path, "/");

其中path最终类似于“./dist/app.war”。当它从Eclipse运行时它就像一个魅力,但当我想从我的项目的可运行jar中做同样的事情时,事情变得更糟。

即使jar架构很好:

  • META-INF
  • DIST
    • app.war
  • ...

找不到该文件。我知道标准路径在运行jar文件时不一致,但尝试使用“jar:file:... / project.jar!/dist/app.jar”并没有做得更好。这个问题有什么解决方案吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我将使用uber插件制作可执行jar。与maven你可以简单地添加

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <finalName>uber-${artifactId}-${version}</finalName>
            </configuration>
        </plugin>

点击此处http://maven.apache.org/plugins/maven-shade-plugin/ 这将创建包含所有资源,类和依赖项的完全自包含的jar