0

我有一个多模块 maven 项目,我的 web 项目的 pom.xml 文件如下所示:

<parent>
    <artifactId>myapp</artifactId>
    <groupId>com.myapp</groupId>
    <version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>myapp-web</artifactId>
<packaging>war</packaging>
<name>myapp-web Maven Webapp</name>
<url>http://maven.apache.org</url>

这是一个 Spring MVC 应用程序,我也有一个嵌入式码头实例:

    Server server = new Server(8080);

    WebAppContext webAppContext = new WebAppContext();
    webAppContext.setContextPath("/");
    webAppContext.setWar("file:/path/to/war/myapp-web.war"); 
    webAppContext.setParentLoaderPriority(true);
    server.setHandler(webAppContext);

    server.start();
    server.join();

我使用 maven 构建 web 项目:

mvn clean package

所以让我感到困惑的是,当我解压缩 maven 在构建过程中生成的 myapp.war 文件时,我查看了 lib 文件夹,却没有看到 web 项目的 .jar 文件?

另外,如何使用 .war 文件运行嵌入式码头?

4

1 回答 1

0

最终创建战争的 web 项目的内容应该直接进入战争中的 WEB-INF/classes,而不是进入 jar 文件。

只要您正确设置了嵌入式 Jetty,您应该能够使用

java -jar myapp-web.war

配置将涉及创建一个 main 方法,添加正确的码头依赖项,并在生成清单时指定主类。

jetty-console-maven-plugin 可能是设置所有这些的更简单的替代方案。看看这个指南:http ://www.dzone.com/links/r/make_your_war_file_executable_with_the_jetty_cons.html

于 2013-02-25T04:41:58.253 回答