Eclipse 同步web项目依赖项maven->;日食

Eclipse 同步web项目依赖项maven->;日食,eclipse,maven-2,Eclipse,Maven 2,我已经安装了m2eclipse插件,同步pom.xml中出现的编译时依赖项没有问题 现在,我添加了JPA+Hibernate(或任何其他)依赖项,maven在执行mvn jetty:run时可以很好地捕捉到这些依赖项 问题是,Eclipse没有。因此,当我从eclipse启动web应用程序时,我没有在引用的tomcat上部署这些额外的.jar 有没有办法将这种web运行时依赖项添加到Eclipse中?我真的不喜欢手动编辑org.eclipse.wst.common.component的想法。我发

我已经安装了m2eclipse插件,同步pom.xml中出现的编译时依赖项没有问题

现在,我添加了JPA+Hibernate(或任何其他)依赖项,maven在执行
mvn jetty:run
时可以很好地捕捉到这些依赖项

问题是,Eclipse没有。因此,当我从eclipse启动web应用程序时,我没有在引用的tomcat上部署这些额外的.jar


有没有办法将这种web运行时依赖项添加到Eclipse中?我真的不喜欢手动编辑org.eclipse.wst.common.component的想法。

我发现,任何时候更新项目的POM都有助于重新运行m2eclipse,否则它将看不到新的外部依赖项

如果您在POM中添加了新的依赖项(JPA+Hibernate或其他什么),之后还没有尝试运行此功能,那么请尝试一下,看看它是否有效

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>

org.apache.maven.plugins
maven eclipse插件
org.springframework.ide.eclipse.core.springnature
org.eclipse.wst.common.project.facet.core.nature
org.eclipse.wst.common.modulecore.ModuleCoreNature
org.eclipse.jem.workbench.JavaEMFNature
org.eclipse.wst.common.project.facet.core.builder
org.eclipse.wst.validation.validationbuilder
org.springframework.ide.eclipse.core.springbuilder
1.5

最后一位被添加为警告!如果有人还并没有准备好运行Eclipse:*命令的后果,他们会讨厌接受一个正在工作的Eclipse项目并破坏一堆配置。

我已经找到了其他解决方案。就我而言,战争取决于一些罐子。有些JAR来自依赖的项目(它们已经部署),有些只是普通的依赖项(hibernate、spring等)

我花了几个小时试图确定为什么要部署依赖项目的JAR,而其他项目则不部署

我的解决方案是在我的WAR项目中创建WEB-INF/lib文件夹!通常您不需要它们,因为Maven2在包阶段创建这个库。在eclipse中,这是必要的


我的月食是3.6M4,m2eclipse是0.9.9.200912160759。

谢谢。你说“重新运行”到底是什么意思?现在我只运行了
mvn eclipse:eclipse-Dwtpversion=2.0
,但我真的很想对这个主题有更深入的了解。感谢编辑,它基本上为我提供了一个方向:创建一个eclipse项目,自定义它的所有“特性”。创建一个空白的mvn eclipse:eclipse项目。Diff转换为pom.xml,这样mvneclipse:eclipse将生成完全相同的eclipse配置文件。虽然很难看,是的!确切地它很难看。我们尝试了几个Maven插件,这是“最好的”,但它肯定是一个PITA。在某些安装(尤其是我的)中,它可能会丢失J2EE模块依赖项,并且需要花费大量的工作才能使其正确发布这些依赖项。希望你不要碰到那个。