Eclipse可以将Maven Web项目导入“动态Web应用程序”吗?

Eclipse可以将Maven Web项目导入“动态Web应用程序”吗?

问题描述:

高级别目标:创建一个可以在Netbeans和Eclipse中正确使用的Maven Web应用程序项目

High Level Goal: Create a single Maven Web Application project that can be used correctly in both Netbeans and Eclipse

转换Maven时使用以下命令,项目类型似乎未设置为Dynamic Web App: mvn eclipse:eclipse -Dwtpversion = 2.0

When converting a Maven project to Eclipse, the project type doesn't seem to be set to Dynamic Web App when using the command: mvn eclipse:eclipse -Dwtpversion=2.0

在Eclipse中,如果创建动态Web应用程序,Project Explorer中会显示更多选项,例如: JAX-WS Web服务,部署描述符等。这是一个完全不同的框架结构。

In Eclipse, if creating a Dynamic Web Application, many more options are shown in the Project Explorer, such as: JAX-WS Web Services, Deployment Descriptor, etc. It's a completely different framework structure.

此外,在使用上述命令转换为Eclipse后,即使转换的输出说:[INFO]用作WTP服务器:Apache Tomcat v7 0.0。而不是想作为一个Web服务运行,它询问我是否是Java Servlet,Applet或单元测试。

Also, after converting to Eclipse with the above command, I can't "Run" it even though the output from the conversion says: [INFO] Using as WTP server : Apache Tomcat v7.0. Instead of wanting to run as a web service, it asks me if this is Java Servlet, Applet, or Unit test.

使用动态Web应用程序(本地Eclipse),运行项目时显示的内容如下:

With a Dynamic Web App (native Eclipse), this is what shows up when Running the project:

也许我要求太多的Eclipse,要获得内置的网络应用功能,它不能来自Maven?

Maybe I am asking too much of Eclipse, and to get the built-in web app functionality, it can't come from Maven?

还有一个我可以尝试。我可以在Eclipse中创建一个动态Web应用程序,然后点击转换为Maven。拿那个POM,修改,然后看看netbeans是否也会加载它。

There is one other I could try. I could create a Dynamic Web App in Eclipse, then hit "Convert to Maven" . Take that POM, modify, then see if netbeans will also load it.

我的'pom.xml':

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.voxel</groupId>
<artifactId>servermap</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>

<name>userprofile</name>

<properties>
    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.2</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.8</version>
    </dependency>
    <dependency>
        <groupId>com.sun.grizzly</groupId>
        <artifactId>grizzly-servlet-webserver</artifactId>
        <version>1.9.18-m</version>
    </dependency>
</dependencies>

<repositories>
    <repository>
        <id>maven2-repository.dev.java.net</id>
        <name>Java.net Repository for Maven</name>
        <url>http://download.java.net/maven/2</url>
    </repository>
</repositories>

如jhericks所建议的,如果您使用 m2eclipse ,则不需要使用 eclipse:eclipse目标

As suggested by jhericks ,if you use m2eclipse , you don't need to use eclipse:eclipse goal. What the eclipse:eclipse goal does can also be done by the m2eclipse.

要将项目转换为动态视图,可以通过m2eclipse来完成 eclipse:eclipse目标 Web应用程序,您可以在项目属性中配置 Project Facets 选项

To convert a project to the Dynamic Web Application , you can configure the Project Facets options in your project properties