Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse:避免在JUnit运行时类路径中包含某些依赖项_Java_Eclipse_Maven_Junit - Fatal编程技术网

Java Eclipse:避免在JUnit运行时类路径中包含某些依赖项

Java Eclipse:避免在JUnit运行时类路径中包含某些依赖项,java,eclipse,maven,junit,Java,Eclipse,Maven,Junit,我在eclipse Luna下工作: 面向Web开发人员的EclipseJavaEEIDE 版本:Luna Service Release 2(4.4.2) 构建id:20150219-0600 我有一个项目,它有一些单元测试,依赖于我工作区中的其他项目以及使用maven解决的外部依赖关系 项目生成ok,使用作为其依赖项之一 .m2/repository/asm/asm/3.1/asm-3.1.jar 问题是,当我尝试为项目运行单元测试时(即,在项目名称上单击鼠标右键菜单并选择“RunAs JU

我在eclipse Luna下工作: 面向Web开发人员的EclipseJavaEEIDE

版本:Luna Service Release 2(4.4.2) 构建id:20150219-0600

我有一个项目,它有一些单元测试,依赖于我工作区中的其他项目以及使用maven解决的外部依赖关系

项目生成ok,使用作为其依赖项之一 .m2/repository/asm/asm/3.1/asm-3.1.jar

问题是,当我尝试为项目运行单元测试时(即,在项目名称上单击鼠标右键菜单并选择“RunAs JUnit”),它无法运行,引发下一个异常:

May 27, 2015 2:06:10 PM com.sun.grizzly.http.servlet.ServletAdapter doService
SEVERE: service exception:
java.lang.IncompatibleClassChangeError: Implementing class
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at com.sun.jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:79)
    at com.sun.jersey.api.core.PackagesResourceConfig.init(PackagesResourceConfig.java:104)
    at com.sun.jersey.api.core.PackagesResourceConfig.<init>(PackagesResourceConfig.java:78)
    at com.sun.jersey.api.core.PackagesResourceConfig.<init>(PackagesResourceConfig.java:89)
    at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:700)
    at com.sun.jersey.spi.container.servlet.WebComponent.createResourceConfig(WebComponent.java:678)
    at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:203)
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
    at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556)
    at javax.servlet.GenericServlet.init(GenericServlet.java:211)
    at com.sun.grizzly.http.servlet.ServletAdapter.loadServlet(ServletAdapter.java:456)
    at com.sun.grizzly.http.servlet.ServletAdapter.doService(ServletAdapter.java:395)
    at com.sun.grizzly.http.servlet.ServletAdapter.service(ServletAdapter.java:349)
    at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168)
    at com.sun.grizzly.tcp.http11.GrizzlyAdapterChain.service(GrizzlyAdapterChain.java:183)
    at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:745)
我发现,不知何故,这两个依赖项在类路径中:
.m2/repository/org/ow2/asm/asm debug all/4.1/asm-debug-all-4.1.jar:
.m2/repository/org/ow2/asm/asm/4.0/asm-4.0.jar:

我怎样才能摆脱它们? 我已经阅读了很多关于转到“运行配置”并从“类路径”选项卡中删除有问题的依赖项的内容,但在我的例子中,“类路径”选项卡仅显示下一个依赖项:

引导条目 JRE系统库[JavaSE-1.7] 用户条目 MyProblematics项目

有谁能告诉我如何摆脱这种讨厌的依赖关系,或者至少对eclipse如何构建JUnit运行时类路径以及修改它的机会有一点了解

谢谢,


Juan Fra

项目pom中最有可能的东西是通过传递方式引入这些依赖项。在Eclipse的pom编辑器中打开pom文件,您可以使用依赖层次结构选项卡来调查如何获得这两个
asm
版本。从那里你可以选择排除你不想要/不需要的一个或两个。

E-Riz,谢谢你的回复。有效地从其他项目中提取依赖项。他们已经在我们的pom中找到了下一行:

<dependency>
      <groupId>websays</groupId>
      <artifactId>common</artifactId>
      <version>1.0.0</version>  
      <exclusions>
        <exclusion>
          <groupId>org.ow2.asm</groupId>
          <artifactId>asm</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.ow2.asm</groupId>
          <artifactId>asm-debug-all</artifactId>
        </exclusion>
        <exclusion>      
         <groupId>com.google.code.findbugs</groupId>
         <artifactId>jsr305</artifactId>
        </exclusion>
      </exclusions>
    </dependency> 

网站
常见的
1.0.0  
org.ow2.asm
asm
org.ow2.asm
asm调试所有
com.google.code.findbugs
jsr305
但是,仍然有这个pom配置,执行类路径包括org.ow2.asm.asm和org.ow2.asm.asm-debug-all工件

注意,我一直在谈论执行类路径,构建类路径工作正常

<dependency>
      <groupId>websays</groupId>
      <artifactId>common</artifactId>
      <version>1.0.0</version>  
      <exclusions>
        <exclusion>
          <groupId>org.ow2.asm</groupId>
          <artifactId>asm</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.ow2.asm</groupId>
          <artifactId>asm-debug-all</artifactId>
        </exclusion>
        <exclusion>      
         <groupId>com.google.code.findbugs</groupId>
         <artifactId>jsr305</artifactId>
        </exclusion>
      </exclusions>
    </dependency>