2011-08-05 67 views
16

高級目標:創建可以正確地NetBeans和Eclipse的Eclipse是否可以將Maven Web項目導入爲「動態Web應用程序」?

使用單一的Maven Web應用程序項目

當轉換Maven項目到Eclipse中,項目類型似乎並沒有被設置爲動態Web當使用的應用程序的命令:MVN蝕:日食-Dwtpversion = 2.0

在Eclipse中,如果要創建一個動態Web應用程序,有更多的選項顯示在項目瀏覽器,如:JAX-WS Web服務,部署描述符等。它是一個完全不同的框架結構。

enter image description here

此外,轉換使用上述命令到Eclipse後,我不能「運行」它,即使從轉換輸出表示:[INFO]使用作爲WTP服務器:的Apache Tomcat V7.0 。它不是想要作爲Web服務運行,而是要求我是否是Java Servlet,Applet或Unit測試。

enter image description here

與動態Web應用程序(機Eclipse),這是運行該項目時顯示的內容:

enter image description here

也許我要求太多的Eclipse,並得到內置的web應用程序的功能,它不可能來自Maven的?

還有一個我可以嘗試。我可以在Eclipse中創建一個動態Web應用程序,然後點擊「轉換爲Maven」。拿那個POM,修改,然後看看netbeans是否也會加載它。

我 '的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> 

回答

15

至於建議的jhericks,如果你使用m2eclipse,你並不需要使用eclipse:eclipse goal。 m2eclipse也可以做eclipse:eclipse goal

要將項目轉換爲動態Web應用程序,您可以配置Project Facets選項在項目屬性

enter image description here

+0

這似乎從根本上是我缺少的。項目方面的概念。我仍然有很多工作要做,以調整這個工作在Eclipse + Netbeans + IntelliJ上,但是這讓我想起了主要問題:) – jsidlosky

+1

嗯......當我導入我的Maven模塊時,這個Project Facet會自動爲我準備,所以我不知道我和@jsidlosky有什麼不同。 – jhericks

+0

缺少一個步驟:在添加「動態Web模塊」方面之後,如何告訴Eclipse使用「src/main/webapp」而不是其通常的「WebContent」目錄? –

3

我有更好的運氣與m2eclipse plugin從Sonatype的。當我開始時,我犯了一個嘗試使用m2eclipse和eclipse:eclipse目標的錯誤。他們不這樣做同樣的事情,因此,如果您安裝插件,停止做MVN日食:日食。無論如何,它對單個web項目的工作非常好,對於多項目反應堆風格的項目也非常好。

我唯一的問題是,試圖war文件部署在Eclipse配置,如果那場戰爭文件與覆蓋內置的服務器,但是這似乎並沒有成爲你的問題。

+0

我使用m2eclipse插件導入方法,它看起來比MVN更好的日食:日食的方法!非常感謝你的幫忙。但是,從Eclipse的角度來看,它仍然不是一個「動態Web應用程序」。我意識到也許我問得太多了,但我認爲這可能是可能的。我用屏幕截圖更新了我的帖子,使其更加清晰。謝謝你,先生。 – jsidlosky

+0

當我在我的項目上做到這一點時,它就起作用了。我有我的Web應用程序的運行服務器選項(它實際上會在我的服務器上啓動它)。儘管如此,我不確定在我的項目中看到什麼神奇的東西。你可以嘗試的一件事是確保在導入時沒有.project文件。另外,我不能從你的屏幕截圖中知道,但我認爲你有一個src/main/webapp/WEB-INF目錄。如果不是,那可能就是這樣。最後一件嘗試 - 右鍵單擊​​該項目,選擇Maven,然後選擇更新項目配置。在那之後,我沒有想法。 – jhericks

+0

我試過這個,當做「在服務器上運行」時,我得到了文檔庫/home/nico/eclipse-workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/MyWebapp不存在或者不是一個可讀的目錄' –

相關問題