Java maven、eclispse和wtp无缘无故地崩溃了:它停止将mvn depentent jar放入WEB-INF/lib

Java maven、eclispse和wtp无缘无故地崩溃了:它停止将mvn depentent jar放入WEB-INF/lib,java,eclipse,classpath,maven,m2eclipse,Java,Eclipse,Classpath,Maven,M2eclipse,我已经运行eclipse(Helios构建id:20100617-1415)和sonotype maven for eclipse版本2(0.1.0.20100xxx)好几个月了,没有问题 我可以在命令行上执行“mvn安装”,并获得一个完美的war,而且我可以在eclipse本地tomcat中运行webapp,没有问题 然后今天早上,我在eclipse中启动了tomcat,点击了serlvet,发现了很多未找到的类。查看eclipse在webapp.metadata.plugins\org.ec

我已经运行eclipse(Helios构建id:20100617-1415)和sonotype maven for eclipse版本2(0.1.0.20100xxx)好几个月了,没有问题

我可以在命令行上执行“mvn安装”,并获得一个完美的war,而且我可以在eclipse本地tomcat中运行webapp,没有问题

然后今天早上,我在eclipse中启动了tomcat,点击了serlvet,发现了很多未找到的类。查看eclipse在webapp.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\ge api\WEB-INF\lib中放置lib的位置,我没有看到任何标准依赖lib(例如log4j)

我做了我惯常的mvn咒语:

  • 近距离接触
  • 转到父项目的根目录
  • mvn清洁
  • mvn安装
  • mvn elcipse:eclipse
  • 重新启动eclipse
  • 刷新所有项目,从父项目开始
  • 这没有帮助

    我尝试了所有可用的m2eclipse选项-没有任何帮助

    所以我试了一下雄猫的咒语:

  • 开放日食
  • 转到服务器选项卡
  • 删除webapp
  • 窗口->首选项->服务器->运行时环境
  • 拆下tomcat 6
  • 重新启动eclipse
  • 再次添加Tomcat6
  • 再次将webapp添加到其中
  • 在eclipse中重新启动tomcat服务器
  • 这导致了同样的问题,马文和埃尔西普互相憎恨,拒绝说话。我没有改变一件事,甚至连一行评论都没有,在它起作用和不起作用之间

    我检查了每个配置-所需的jar作为依赖项正确地位于每个正确的位置。请参见下文-所有JAR都在类路径中-由maven正确放置在那里

    还有一个“订单和导出”选项卡,尽管我不知道导出部分的含义:

    上面的对话框在LIB旁边有复选框,所以我试着点击它们(嘿,我绝望了)。当我这样做并点击ok时,我总是会出现以下错误:

    我从我的电脑上删除了tomcat,重新添加,得到了相同的错误。我可以很高兴地运行一个没有库的测试Webapp项目,所以看起来还不错

    在10个小时的头发撕裂后,我注意到警告中的一些内容:

    说明资源路径位置类型 类路径条目M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar将不会导出或发布。可能会导致运行时ClassNotFoundException。ge api P/ge api类路径依赖验证程序消息

    究竟是什么原因造成的

    有很多关于这个错误的帖子,似乎在说你必须这样做

    “打开J2EE模块依赖项”UI并在潜在条目表中选择类路径条目(解析的JAR将打包在WEB-INF/lib或 EAR的根,通过清单类路径引用,具体取决于依赖项的类型“

    然而,我在eclipse中没有任何类似“J2EE模块依赖项”的东西

    以下是我的方面/属性:

    请参阅,没有J2EE,也没有配置选项

    所以在绝望中,我尝试了“快速修复”的警告

    “将关联的原始类路径项标记为发布/导出依赖项。”

    它以前是有效的,那么为什么我现在必须这么做呢?安威,我在4个子项目的10个LIB中的一个上尝试了这一点,其中一个子项目具有相同的依赖关系,到目前为止由父pom管理(是的,我必须进行40次此攻击),现在我看到2)事情发生了:

  • 它在Java构建路径的库选项卡中添加了“发布/导出依赖性:
  • 如果我没有使用自动修复系统,我找不到任何手动执行此操作的方法

  • 它给了我更多的警告:
  • “说明资源路径位置类型” 类路径条目M2_REPO/log4j/log4j/1.2.15/log4j-1.2.15.jar标记为发布/导出,但未导出到项目类路径上。Eclipse中的类路径可见性和运行时的类路径可见性将有所不同。ge core P/ge core类路径依赖验证程序消息“

    使用maven管理类路径有什么意义

    所以现在我一直在做一些事情,不希望回到昨天,那时一切都顺利:我用maven创建了这个项目,用pom文件做了所有的事情,eclipse继续进行。直到现在

    这是我的父母pom:

    <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.skillkash.ge</groupId>
    <artifactId>ge-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>ge-parent</name>
    <modules>
     <module>ge-api</module>
     <module>ge-core</module>
     <module>ibo-core</module>
    </modules>
    <build>
    <plugins>
      <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-compiler-plugin</artifactId>
       <configuration>
        <source>1.6</source>
        <target>1.6</target>
       </configuration>
      </plugin>
     </plugins>
    </build>
    <dependencies>
    <dependency>
     <groupId>log4j</groupId>
     <artifactId>log4j</artifactId>
     <version>1.2.15</version>
     <exclusions>
      <exclusion>
       <groupId>javax.jms</groupId>
       <artifactId>jms</artifactId>
      </exclusion>
      <exclusion>
       <groupId>com.sun.jdmk</groupId>
       <artifactId>jmxtools</artifactId>
      </exclusion>
      <exclusion>
       <groupId>com.sun.jmx</groupId>
       <artifactId>jmxri</artifactId>
       </exclusion>
      </exclusions>
     </dependency>
     <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>5.12.1</version>
     </dependency>
    </dependencies>
    </project>
    
    
    4.0.0
    com.skillkash.ge
    通用电气母公司
    0.0.1-快照
    聚甲醛
    通用电气母公司
    通用电气api
    通用电气核心
    ibo型芯
    org.apache.maven.plugins
    maven编译器插件
    1.6
    1.6
    log4j
    log4j
    1.2.15
    javax.jms
    jms
    com.sun.jdmk
    jmxtools
    com.sun.jmx
    jmxri
    org.testng
    testng
    5.12.1
    
    以下是我的本地webapp pom:

    <?xml version="1.0"?>
    <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <artifactId>ge-parent</artifactId>
        <groupId>com.skillkash.ge</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <groupId>com.skillkash.ge</groupId>
    <artifactId>ge-api</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>ge-api Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.4</version>
        <scope>provided</scope>
      </dependency>    
      <dependency>
       <groupId>com.skillkash.ge</groupId>
       <artifactId>ibo-core</artifactId>
        <version>0.0.1-SNAPSHOT</version>
       <scope>compile</scope>
      </dependency>
      <dependency>
       <groupId>com.skillkash.ge</groupId>
       <artifactId>ge-core</artifactId>
       <version>0.0.1-SNAPSHOT</version>
       </dependency>
       </dependencies>
     <build>
        <finalName>ge-api</finalName>
    </build>
    </project>
    
    
    4.0.0
    通用电气母公司
    com.skillkash.ge
    0.0.1-快照
    com.skillkash.ge
    通用电气api
    0.0.1-快照
    战争
    ge api Maven Webapp
    http://maven.apache.org
    javax.servlet
    servlet api
    2.4
    假如
    com.skillkash.ge
    ibo型芯
    0.0.1-快照
    编译
    com.skillkash.ge
    通用电气核心
    0.0.1-快照
    通用电气api
    
    下面是我在eclipse中的项目布局:

    有人知道哪里出了问题吗?正确的解决方法是什么?

    两个想法:

    1) 日食咒语:开始日食。选择文件->全部关闭。关闭并重新启动Eclipse

    2) 假设您使用源代码版本控制系统:deleteeclipse。删除Tomcat。删除工作区。重新安装Eclipse(如果您一直遇到这样的问题(如我所做的那样),您可能希望保留一个压缩的Eclipse以及为此目的而预先安装的所有包)。重新安装Tomcat:我建议在某个地方解压Tomcat并从Eclipse启动/停止它,而不是Tomcat系统安装。从源存储库中签出项目;希望最新的版本可以工作,如果不尝试旧的

    我的建议:

    • 不要使用
      eclipse:eclipse