我有一个之前创建并部署在 Tomcat7 中的 REST Web 服务。我想按照建议将其部署在 Jetty 上 in a previous question ,我创建了一个 Maven 项目并在那里复制了我的文件并配置了依赖项,我可以从 eclipse 成功运行 Maven 安装。
这是我在 POM.xml 中的 build
部分:
<build>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<dependentWarExcludes></dependentWarExcludes>
<webappDirectory>
WebContent
</webappDirectory>
</configuration>
</plugin>
</plugins>
</build>
我按照说明操作here使用maven jetty插件(我不确定是否需要)。这里的问题是如何从 Eclipse 在 jetty 中部署我的 Maven 项目,以便我可以访问 http:localhost:8080/myproject 并查看我的项目正在运行?
编辑:
我过去在 Tomcat 上运行服务的方式是右键单击项目,然后单击“运行方式”->“在服务器上运行”(在 Eclipse 服务器中配置)
我正在使用 eclipse Indigo、Maven 3 和 jetty 8。我还使用 jersey 作为 Web 服务。
最佳答案
在这里,您混合了两种不同的东西:
- 使用 Eclipse 服务器插件作为 Eclipse 的 Tomcat 插件来运行 Web 应用程序。
- 使用 Maven 插件作为 Jetty Maven 插件运行您的 Web 应用程序。还有适用于 Tomcat 的 Maven 插件。
话虽如此,看看这个 answer其中描述了如何配置 Eclipse 来运行 Maven 插件(它可能会根据 Eclipse 版本而变化,但想法是相似的)
已编辑:
如果您只想从 Maven 运行 jetty,只需使用以下命令行:
mvn jetty:run
但是,无论如何,我建议您在 pom 文件中指明 Maven jetty 插件版本(如果不这样做,Maven 会警告您)。
已编辑 2
首先,更新您的 jetty maven 插件版本:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.0.0.M2</version>
</plugin>
第二。您正在使用两个插件,一个用于构建 war 文件 (maven-war-plugin),另一个用于在 jetty 上运行应用程序 (jetty-maven-plugin)。请记住,jetty 认为您的项目具有标准的 Maven 项目结构,这意味着它将在/src/main/webapp 中查找您的 Web 应用程序内容,但它看起来不在这里。在你的 war 插件配置中,你指定你的 web 内容位于 WebContent 中,所以告诉 jetty 插件该目录在那里,同时你也告诉它 to war 插件:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.0.0.M2</version>
<configuration>
<webAppSourceDirectory>/WebContent</webAppSourceDirectory>
<webXml>/over/here/web.xml</webXml>
<jettyEnvXml>/src/over/here/jetty-env.xml</jettyEnvXml>
<classesDirectory>/somewhere/else</classesDirectory>
<configuration>
</plugin>
参见documentation 。当然,最好使用标准的 Maven 项目结构,这样您就不需要告诉 jetty 东西在哪里。
关于java - 如何从 Eclipse 在 jetty 8 上运行 Web 服务 Maven 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11720537/