2009-01-08 76 views
3

我已經安裝了m2eclipse插件,並且沒有任何問題同步pom.xml中出現的編譯時依賴項。同步web項目依賴項maven - > eclipse

現在,我添加JPA + Hibernate(或其他)依賴關係,在做mvn jetty:run時,maven可以很好地捕獲這些依賴關係。

問題是,Eclipse沒有。所以當我從eclipse啓動web應用程序時,我沒有在引用的tomcat上部署額外的jar。

有沒有辦法將這種類型的web運行時依賴添加到Eclipse?不太喜歡手動編輯org.eclipse.wst.common.component的想法。

回答

9

我發現,無論何時您更新項目的POM,它都有助於重新運行m2eclipse,否則它將不會看到新的外部依賴項。

如果你還沒有嘗試運行這個,因爲你添加了新的依賴項(JPA + Hibernate或其他)到你的POM中,然後給它一個鏡頭,看看它是否工作。

mvn clean install eclipse:clean eclipse:eclipse eclipse:m2eclipse 

請注意,執行此操作後,您可能需要刷新您的Eclipse項目以使更改生效。

它可能不需要所有這些參數的工作,但我有點加在一起,只是爲了確定。您可以調整參數列表以使其適用於您。這樣做可能會浪費掉你的項目的一些Eclipse偏好,所以希望你擁有了在你的POM中重建項目所需的一切。例如,我在其中一個POM中添加了一些額外的東西,以確保當使用maven重新構建eclipse項目時,springnature和springbuilder將添加到我的eclipse項目中。

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-eclipse-plugin</artifactId> 
     <configuration> 
     <additionalProjectnatures> 
      <projectnature> 
      org.springframework.ide.eclipse.core.springnature 
      </projectnature> 
      <projectnature> 
      org.eclipse.wst.common.project.facet.core.nature 
      </projectnature> 
      <projectnature> 
      org.eclipse.wst.common.modulecore.ModuleCoreNature 
      </projectnature> 
      <projectnature> 
      org.eclipse.jem.workbench.JavaEMFNature 
      </projectnature> 
     </additionalProjectnatures> 
     <additionalBuildcommands> 
      <buildcommand> 
      org.eclipse.wst.common.project.facet.core.builder 
      </buildcommand> 
      <buildcommand> 
      org.eclipse.wst.validation.validationbuilder 
      </buildcommand> 
      <buildcommand> 
      org.springframework.ide.eclipse.core.springbuilder 
      </buildcommand> 
     </additionalBuildcommands> 
     <wtpversion>1.5</wtpversion> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 

最後一點被添加爲警告!如果他們沒有準備好運行eclipse:*命令的後果,會痛恨某人採用正在運行的Eclipse項目並銷燬一堆配置。

+0

謝謝。 你的意思是說'重新運行m2eclipse'? 現在我已經逃過了`mvn eclipse:eclipse -Dwtpversion = 2.0`的運行,但真的想要更深入地理解這個主題。 – yanchenko 2009-01-08 09:53:15

0

我找到了其他解決方案。在我的情況下,有一些WAR取決於一些JAR。一些JAR來自依賴項目(並且它們被部署),有些JAR只是普通的依賴項(hibernate,spring等)。

我花了幾個小時試圖確定爲什麼來自依賴項目的JAR部署和其他 - 不。

我的解決方案是在我的WAR項目中創建WEB-INF/lib文件夾!通常你不需要它們,因爲Maven2在包裝階段創建了這個庫。在eclipse中這是必要的。

我的Eclipse是3.6M4,m2eclipse是0.9.9.200912160759。